summaryrefslogtreecommitdiff
path: root/tests/bindings
diff options
context:
space:
mode:
Diffstat (limited to 'tests/bindings')
-rw-r--r--tests/bindings/glsl-parameter-blocks.slang16
-rw-r--r--tests/bindings/glsl-parameter-blocks.slang.glsl37
2 files changed, 53 insertions, 0 deletions
diff --git a/tests/bindings/glsl-parameter-blocks.slang b/tests/bindings/glsl-parameter-blocks.slang
new file mode 100644
index 000000000..d356df775
--- /dev/null
+++ b/tests/bindings/glsl-parameter-blocks.slang
@@ -0,0 +1,16 @@
+#version 450 core
+//TEST:CROSS_COMPILE: -profile ps_5_0 -entry main -target spirv-assembly
+
+struct Test
+{
+ float4 a;
+ Texture2D t;
+ SamplerState s;
+};
+
+ParameterBlock<Test> gTest;
+
+float4 main(float2 uv : UV)
+{
+ return gTest.a + gTest.t.Sample(gTest.s, uv);
+}
diff --git a/tests/bindings/glsl-parameter-blocks.slang.glsl b/tests/bindings/glsl-parameter-blocks.slang.glsl
new file mode 100644
index 000000000..5094debb1
--- /dev/null
+++ b/tests/bindings/glsl-parameter-blocks.slang.glsl
@@ -0,0 +1,37 @@
+//TEST_IGNORE_FILE:
+#version 450 core
+
+struct Test
+{
+ vec4 a;
+};
+
+layout(binding = 0)
+uniform gTest_S1
+{
+ Test gTest;
+};
+
+layout(binding = 1)
+uniform texture2D gTest_t;
+
+layout(binding = 2)
+uniform sampler gTest_s;
+
+vec4 main_(vec2 uv)
+{
+ return gTest.a + texture(sampler2D(gTest_t, gTest_s), uv);
+}
+
+layout(location = 0)
+in vec2 SLANG_in_uv;
+
+layout(location = 0)
+out vec4 SLANG_out_main_result;
+
+void main()
+{
+ vec2 uv = SLANG_in_uv;
+ vec4 main_result = main_(uv);
+ SLANG_out_main_result = main_result;
+}