diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/cross-compile/rw-buffer.slang | 14 | ||||
| -rw-r--r-- | tests/cross-compile/rw-buffer.slang.glsl | 26 |
2 files changed, 40 insertions, 0 deletions
diff --git a/tests/cross-compile/rw-buffer.slang b/tests/cross-compile/rw-buffer.slang new file mode 100644 index 000000000..f5246ed78 --- /dev/null +++ b/tests/cross-compile/rw-buffer.slang @@ -0,0 +1,14 @@ +// rw-buffer.slang + +// Confirm that writing into a `RWBuffer` generates appropriate GLSL/SPIR-V. + +//TEST:CROSS_COMPILE: -profile ps_5_0 -entry main -target spirv-assembly + +RWBuffer<float> buffer; + + +float4 main(float u : U, int idx : IDX) : SV_Target +{ + buffer[idx] = u; + return u; +} diff --git a/tests/cross-compile/rw-buffer.slang.glsl b/tests/cross-compile/rw-buffer.slang.glsl new file mode 100644 index 000000000..55e25656e --- /dev/null +++ b/tests/cross-compile/rw-buffer.slang.glsl @@ -0,0 +1,26 @@ +// rw-buffer.slang.glsl +//TEST_IGNORE_FILE: + +#version 450 +layout(row_major) uniform; +layout(row_major) buffer; + +layout(r32f) +layout(binding = 0) +uniform imageBuffer buffer_0; + +layout(location = 0) +out vec4 _S1; + +layout(location = 0) +in float _S2; + +flat layout(location = 1) +in int _S3; + +void main() +{ + imageStore(buffer_0, int(uint(_S3)), vec4(_S2, float(0), float(0), float(0))); + _S1 = vec4(_S2); + return; +} |
