diff options
Diffstat (limited to 'tests/bindings')
| -rw-r--r-- | tests/bindings/glsl-parameter-blocks.slang | 16 | ||||
| -rw-r--r-- | tests/bindings/glsl-parameter-blocks.slang.glsl | 37 |
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; +} |
