summaryrefslogtreecommitdiff
path: root/tests/spirv
diff options
context:
space:
mode:
Diffstat (limited to 'tests/spirv')
-rw-r--r--tests/spirv/device-index-glsl-syntax.slang16
-rw-r--r--tests/spirv/device-index-hlsl-syntax.slang17
2 files changed, 33 insertions, 0 deletions
diff --git a/tests/spirv/device-index-glsl-syntax.slang b/tests/spirv/device-index-glsl-syntax.slang
new file mode 100644
index 000000000..3a374f038
--- /dev/null
+++ b/tests/spirv/device-index-glsl-syntax.slang
@@ -0,0 +1,16 @@
+//TEST:SIMPLE(filecheck=SPIRV): -target spirv -entry main -stage fragment -allow-glsl
+//TEST:SIMPLE(filecheck=GLSL): -target glsl -entry main -stage fragment -allow-glsl
+
+// SPIRV: OpDecorate %{{.*}} BuiltIn DeviceIndex
+// GLSL: gl_DeviceIndex
+
+struct PSIn
+{
+ float3 color;
+}
+
+[shader("fragment")]
+float4 main(PSIn pin)
+{
+ return float4(pin.color, (float)gl_DeviceIndex);
+}
diff --git a/tests/spirv/device-index-hlsl-syntax.slang b/tests/spirv/device-index-hlsl-syntax.slang
new file mode 100644
index 000000000..756f1bf80
--- /dev/null
+++ b/tests/spirv/device-index-hlsl-syntax.slang
@@ -0,0 +1,17 @@
+//TEST:SIMPLE(filecheck=SPIRV): -target spirv -entry main
+//TEST:SIMPLE(filecheck=GLSL): -target glsl -entry main
+
+// SPIRV: OpDecorate %{{.*}} BuiltIn DeviceIndex
+// GLSL: gl_DeviceIndex
+
+struct PSIn
+{
+ float3 color;
+ int deviceIndex : SV_DeviceIndex;
+}
+
+[shader("fragment")]
+float4 main(PSIn pin)
+{
+ return float4(pin.color, (float)pin.deviceIndex);
+}