summaryrefslogtreecommitdiff
path: root/tests/language-feature
diff options
context:
space:
mode:
Diffstat (limited to 'tests/language-feature')
-rw-r--r--tests/language-feature/capability/var-capability-incompatible.slang19
-rw-r--r--tests/language-feature/capability/var-capability-wgsl-2.slang15
-rw-r--r--tests/language-feature/capability/var-capability-wgsl.slang15
-rw-r--r--tests/language-feature/capability/var-implicit-capability-wgsl.slang14
4 files changed, 63 insertions, 0 deletions
diff --git a/tests/language-feature/capability/var-capability-incompatible.slang b/tests/language-feature/capability/var-capability-incompatible.slang
new file mode 100644
index 000000000..89378f6b3
--- /dev/null
+++ b/tests/language-feature/capability/var-capability-incompatible.slang
@@ -0,0 +1,19 @@
+//TEST:SIMPLE(filecheck=CHECK):-target spirv
+[require(hlsl)]
+struct MyType
+{}
+
+//CHECK: ([[# @LINE+2]]): error 36107
+[numthreads(1,1,1)]
+void f1()
+{
+ MyType t; // compile to spirv should result error here.
+}
+
+ConstantBuffer<MyType> t2;
+//CHECK: ([[# @LINE+2]]): error 36107
+[numthreads(1,1,1)]
+void f2() // compile to spirv should result error here.
+{
+ ConstantBuffer<MyType> t3 = t2;
+}
diff --git a/tests/language-feature/capability/var-capability-wgsl-2.slang b/tests/language-feature/capability/var-capability-wgsl-2.slang
new file mode 100644
index 000000000..4fb259ea6
--- /dev/null
+++ b/tests/language-feature/capability/var-capability-wgsl-2.slang
@@ -0,0 +1,15 @@
+//TEST:SIMPLE(filecheck=CHECK_IGNORE_CAPS): -target wgsl -entry Main -stage compute
+
+//CHECK_IGNORE_CAPS-NOT: error 36107
+[require(cpp_cuda_glsl_hlsl_metal_spirv)]
+struct inputWrapper {
+ RWBuffer<float> InputTyped;
+};
+
+inputWrapper input;
+
+[numthreads(64, 1, 1)]
+void Main(uint3 DTid : SV_DispatchThreadID)
+{
+ // We should not see an error here, because the inputWrapper is not referenced.
+} \ No newline at end of file
diff --git a/tests/language-feature/capability/var-capability-wgsl.slang b/tests/language-feature/capability/var-capability-wgsl.slang
new file mode 100644
index 000000000..2a67cc6e2
--- /dev/null
+++ b/tests/language-feature/capability/var-capability-wgsl.slang
@@ -0,0 +1,15 @@
+//TEST:SIMPLE(filecheck=CHECK): -target wgsl -entry Main -stage compute
+//TEST:SIMPLE(filecheck=CHECK_IGNORE_CAPS): -target wgsl -entry Main -stage compute -ignore-capabilities
+
+[require(cpp_cuda_glsl_hlsl_metal_spirv)]
+Buffer<float> InputTyped;
+[require(cpp_cuda_glsl_hlsl_metal_spirv)]
+RWBuffer<float> OutputTyped;
+
+//CHECK: ([[# @LINE+3]]): error 36107
+//CHECK_IGNORE_CAPS-NOT: error 36107
+[numthreads(64, 1, 1)]
+void Main(uint3 DTid : SV_DispatchThreadID)
+{
+ OutputTyped[DTid.x] = InputTyped[DTid.x];
+} \ No newline at end of file
diff --git a/tests/language-feature/capability/var-implicit-capability-wgsl.slang b/tests/language-feature/capability/var-implicit-capability-wgsl.slang
new file mode 100644
index 000000000..56aa4157d
--- /dev/null
+++ b/tests/language-feature/capability/var-implicit-capability-wgsl.slang
@@ -0,0 +1,14 @@
+//TEST:SIMPLE(filecheck=CHECK): -target wgsl -entry Main -stage compute
+//TEST:SIMPLE(filecheck=CHECK_IGNORE_CAPS): -target wgsl -entry Main -stage compute -ignore-capabilities
+
+
+Buffer<float> InputTyped;
+RWBuffer<float> OutputTyped;
+
+//CHECK: ([[# @LINE+3]]): error 36107
+//CHECK_IGNORE_CAPS-NOT: error 36107
+[numthreads(64, 1, 1)]
+void Main(uint3 DTid : SV_DispatchThreadID)
+{
+ OutputTyped[DTid.x] = InputTyped[DTid.x];
+} \ No newline at end of file