diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/cross-compile/non-uniform-indexing.slang | 13 | ||||
| -rw-r--r-- | tests/cross-compile/non-uniform-indexing.slang.glsl | 28 |
2 files changed, 41 insertions, 0 deletions
diff --git a/tests/cross-compile/non-uniform-indexing.slang b/tests/cross-compile/non-uniform-indexing.slang new file mode 100644 index 000000000..647742df8 --- /dev/null +++ b/tests/cross-compile/non-uniform-indexing.slang @@ -0,0 +1,13 @@ +//TEST:CROSS_COMPILE:-target spirv-assembly -entry main -stage fragment + +// Confirm that `NonUniformResourceIndex` translates to SPIR-V as expeted + +Texture2D t[10]; +SamplerState s; + +float4 main( + float3 uv : UV) + : SV_Target +{ + return t[NonUniformResourceIndex(int(uv.z))].Sample(s, uv.xy); +} diff --git a/tests/cross-compile/non-uniform-indexing.slang.glsl b/tests/cross-compile/non-uniform-indexing.slang.glsl new file mode 100644 index 000000000..83f63c70d --- /dev/null +++ b/tests/cross-compile/non-uniform-indexing.slang.glsl @@ -0,0 +1,28 @@ +//TEST_IGNORE_FILE +#version 450 + +#extension GL_EXT_nonuniform_qualifier : require + +layout(binding = 0) +uniform texture2D t_0[10]; + +layout(binding = 1) +uniform sampler s_0; + +layout(location = 0) +out vec4 _S1; + +layout(location = 0) +in vec3 _S2; + +void main() +{ + vec3 _S3 = _S2; + + int _S4 = nonuniformEXT(int(_S3.z)); + + vec4 _S5 = texture(sampler2D(t_0[_S4],s_0), _S3.xy); + + _S1 = _S5; + return; +} |
