diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/cross-compile/non-uniform-indexing.slang.glsl | 10 | ||||
| -rw-r--r-- | tests/cross-compile/vk-texture-indexing.slang | 24 | ||||
| -rw-r--r-- | tests/cross-compile/vk-texture-indexing.slang.glsl | 29 |
3 files changed, 59 insertions, 4 deletions
diff --git a/tests/cross-compile/non-uniform-indexing.slang.glsl b/tests/cross-compile/non-uniform-indexing.slang.glsl index 5ea5ed73a..96abe6bac 100644 --- a/tests/cross-compile/non-uniform-indexing.slang.glsl +++ b/tests/cross-compile/non-uniform-indexing.slang.glsl @@ -17,10 +17,12 @@ in vec3 _S2; void main() { - int _S3 = nonuniformEXT(int(_S2.z)); + vec4 _S3 = texture( + sampler2D( + t_0[nonuniformEXT(int(_S2.z))], + s_0), + _S2.xy); - vec4 _S4 = texture(sampler2D(t_0[_S3],s_0), _S2.xy); - - _S1 = _S4; + _S1 = _S3; return; } diff --git a/tests/cross-compile/vk-texture-indexing.slang b/tests/cross-compile/vk-texture-indexing.slang new file mode 100644 index 000000000..9a086d5bd --- /dev/null +++ b/tests/cross-compile/vk-texture-indexing.slang @@ -0,0 +1,24 @@ +// vk-texture-indexing.slang + +//TEST:CROSS_COMPILE:-target spirv-assembly -entry main -stage fragment + +struct Params +{ + Texture2D<float> textures[10]; + SamplerState sampler; +}; + +ParameterBlock<Params> gParams; + +float fetchData(uint2 coords, uint index) +{ + return gParams.textures[NonUniformResourceIndex(index)][coords]; +} + +float4 main( + uint3 uv : UV) + : SV_Target +{ + float v = fetchData(uv.xy, uv.z); + return v; +} diff --git a/tests/cross-compile/vk-texture-indexing.slang.glsl b/tests/cross-compile/vk-texture-indexing.slang.glsl new file mode 100644 index 000000000..069e6efc3 --- /dev/null +++ b/tests/cross-compile/vk-texture-indexing.slang.glsl @@ -0,0 +1,29 @@ +#version 450 +#extension GL_EXT_nonuniform_qualifier : require +#extension GL_EXT_samplerless_texture_functions : require + +layout(binding = 0) +uniform texture2D gParams_textures_0[10]; + +float fetchData_0(uvec2 coords_0, uint index_0) +{ + float _S1 = texelFetch( + gParams_textures_0[nonuniformEXT(index_0)], + ivec2(coords_0), + 0).x; + + return _S1; +} + +layout(location = 0) +out vec4 _S2; + +flat layout(location = 0) +in uvec3 _S3; + +void main() +{ + float v_0 = fetchData_0(_S3.xy, _S3.z); + _S2 = vec4(v_0); + return; +} |
