summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/cross-compile/rw-buffer.slang14
-rw-r--r--tests/cross-compile/rw-buffer.slang.glsl26
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;
+}