summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/bugs/vk-image-atomics.slang12
-rw-r--r--tests/bugs/vk-image-atomics.slang.glsl18
2 files changed, 30 insertions, 0 deletions
diff --git a/tests/bugs/vk-image-atomics.slang b/tests/bugs/vk-image-atomics.slang
new file mode 100644
index 000000000..f846606f9
--- /dev/null
+++ b/tests/bugs/vk-image-atomics.slang
@@ -0,0 +1,12 @@
+//TEST:CROSS_COMPILE: -profile ps_5_0 -entry main -target spirv-assembly
+
+// Ensure that we can lower to `imageAtomicAdd` correctly.
+
+RWTexture2D<uint> t;
+
+float4 main() : SV_Target
+{
+ uint u;
+ InterlockedAdd(t[uint2(0)], 1, u);
+ return u;
+}
diff --git a/tests/bugs/vk-image-atomics.slang.glsl b/tests/bugs/vk-image-atomics.slang.glsl
new file mode 100644
index 000000000..383b396ed
--- /dev/null
+++ b/tests/bugs/vk-image-atomics.slang.glsl
@@ -0,0 +1,18 @@
+#version 450
+
+layout(r32ui)
+layout(binding = 0)
+uniform uimage2D t_0;
+
+layout(location = 0)
+out vec4 _S1;
+
+void main()
+{
+ const uint _S2 = uint(1);
+
+ uint _S3;
+ _S3 = imageAtomicAdd(t_0, ivec2(uvec2(0)), _S2);
+ _S1 = vec4(_S3);
+ return;
+}