summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/diagnostics/specialization-constants.slang16
-rw-r--r--tests/spirv/push-constant-space.slang18
2 files changed, 34 insertions, 0 deletions
diff --git a/tests/diagnostics/specialization-constants.slang b/tests/diagnostics/specialization-constants.slang
new file mode 100644
index 000000000..30f3a5f95
--- /dev/null
+++ b/tests/diagnostics/specialization-constants.slang
@@ -0,0 +1,16 @@
+//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target spirv
+
+struct T { int x; int y; }
+
+// CHECK: ([[# @LINE+1]]): error 31218
+[vk::constant_id(1)]
+const T st;
+
+[vk::constant_id(1)]
+// CHECK: ([[# @LINE+1]]): error 31219
+static const int x = 2;
+
+[push_constant]
+[vk::constant_id(1)]
+// CHECK: ([[# @LINE+1]]): error 31220
+const int y; \ No newline at end of file
diff --git a/tests/spirv/push-constant-space.slang b/tests/spirv/push-constant-space.slang
new file mode 100644
index 000000000..847c60b7d
--- /dev/null
+++ b/tests/spirv/push-constant-space.slang
@@ -0,0 +1,18 @@
+// Test that push constants should not occupy the default
+// space.
+
+//TEST:SIMPLE(filecheck=CHECK): -target spirv
+
+// CHECK-NOT: OpDecorate {{.*}} DescriptorSet 1
+
+struct Data {
+ StructuredBuffer<uint4> data;
+ RWStructuredBuffer<float> output;
+};
+ParameterBlock<Data> gData;
+
+[numthreads(1,1,1)]
+void taskMain(uniform uint a)
+{
+ gData.output[0] = gData.data[0].x + a;
+}