summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/bindings/multiple-parameter-blocks.slang6
-rw-r--r--tests/language-feature/extensions/extension-method-simple.slang30
-rw-r--r--tests/slang-extension/atomic-float-byte-address-buffer-cross.slang2
3 files changed, 36 insertions, 2 deletions
diff --git a/tests/bindings/multiple-parameter-blocks.slang b/tests/bindings/multiple-parameter-blocks.slang
index 0f247319d..f7ce33297 100644
--- a/tests/bindings/multiple-parameter-blocks.slang
+++ b/tests/bindings/multiple-parameter-blocks.slang
@@ -1,9 +1,13 @@
-//TEST:COMPARE_HLSL:-profile ps_5_1 -entry main -parameter-blocks-use-register-spaces
+//TEST:SIMPLE(filecheck=CHECK):-target hlsl -profile ps_5_1 -entry main -parameter-blocks-use-register-spaces
// Confirm that Slang `ParameterBlock<T>` generates
// parameter bindings like we expect.
+// CHECK: Texture2D{{.*}} p_t_0 : register(t0);
+// CHECK: Texture2D{{.*}} p_ta_0[{{.*}}] : register(t1);
+// CHECK: Texture2D{{.*}} p1_t_0 : register(t0, space1);
+// CHECK: SamplerState p1_s_0 : register(s0, space1);
float4 use(float4 val) { return val; };
float4 use(Texture2D t, SamplerState s) { return t.Sample(s, 0.0); }
diff --git a/tests/language-feature/extensions/extension-method-simple.slang b/tests/language-feature/extensions/extension-method-simple.slang
new file mode 100644
index 000000000..d3162c053
--- /dev/null
+++ b/tests/language-feature/extensions/extension-method-simple.slang
@@ -0,0 +1,30 @@
+// interface-extension.slang
+
+// Test that an `extension` applied to an interface type works as users expect
+
+//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj
+
+struct MyType
+{
+ int v;
+}
+
+extension MyType
+{
+ int foo()
+ {
+ return v;
+ }
+}
+
+//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
+RWStructuredBuffer<int> outputBuffer;
+
+[numthreads(4, 1, 1)]
+void computeMain(int3 dispatchThreadID : SV_DispatchThreadID)
+{
+ MyType t;
+ t.v = 1;
+ // CHECK: 1
+ outputBuffer[dispatchThreadID.x] = t.foo();
+}
diff --git a/tests/slang-extension/atomic-float-byte-address-buffer-cross.slang b/tests/slang-extension/atomic-float-byte-address-buffer-cross.slang
index f7ae69365..c3204a37c 100644
--- a/tests/slang-extension/atomic-float-byte-address-buffer-cross.slang
+++ b/tests/slang-extension/atomic-float-byte-address-buffer-cross.slang
@@ -33,7 +33,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID)
int idx = int((tid & 3) ^ (tid >> 2));
const float delta = anotherBuffer[idx & 3];
-
+
float previousValue = 0;
outputBuffer.InterlockedAddF32((idx << 2), 1.0f, previousValue);