diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/cross-compile/texture-load.slang | 21 | ||||
| -rw-r--r-- | tests/cross-compile/texture-load.slang.glsl | 44 |
2 files changed, 65 insertions, 0 deletions
diff --git a/tests/cross-compile/texture-load.slang b/tests/cross-compile/texture-load.slang new file mode 100644 index 000000000..71f22b13a --- /dev/null +++ b/tests/cross-compile/texture-load.slang @@ -0,0 +1,21 @@ +// texture-load.slang + +// Confirm that texture `Load` operations yield the +// expected type when compiled to SPIR-V. + +//TEST:CROSS_COMPILE:-target spirv-assembly -entry main -stage compute + +Texture2D<float2> inputTexture; +RWTexture2D<float2> outputTexture; + +cbuffer C +{ + int2 pos; +} + +[numthreads(16, 16, 1)] +void main(uint2 pixelIndex : SV_DispatchThreadID) +{ + float2 tmp = inputTexture.Load(int3(pos,0)); + outputTexture[pos] = tmp; +} diff --git a/tests/cross-compile/texture-load.slang.glsl b/tests/cross-compile/texture-load.slang.glsl new file mode 100644 index 000000000..23646db91 --- /dev/null +++ b/tests/cross-compile/texture-load.slang.glsl @@ -0,0 +1,44 @@ +// texture-load.slang.glsl +//TEST_IGNORE_FILE: + +#version 450 + +layout(row_major) uniform; +layout(row_major) buffer; + +#extension GL_EXT_samplerless_texture_functions : require + +struct SLANG_ParameterGroup_C_0 +{ + ivec2 pos_0; +}; + +layout(binding = 2) +layout(std140) +uniform _S1 +{ + SLANG_ParameterGroup_C_0 _data; +} C_0; + +layout(binding = 0) +uniform texture2D inputTexture_0; + +layout(rg32f) +layout(binding = 1) +uniform image2D outputTexture_0; + +layout(local_size_x = 16, local_size_y = 16, local_size_z = 1) in; +void main() +{ + vec2 tmp_0 = texelFetch( + inputTexture_0, + ivec3(C_0._data.pos_0, 0).xy, + ivec3(C_0._data.pos_0, 0).z).xy; + + imageStore( + outputTexture_0, + ivec2(uvec2(C_0._data.pos_0)), + vec4(tmp_0, float(0), float(0))); + + return; +} |
