[Piglit] [PATCH 4/8] arb_shader_image_load_store: add write-to-rendered-image test

Nicolai Hähnle nhaehnle at gmail.com
Thu Apr 7 01:10:48 UTC 2016


From: Nicolai Hähnle <nicolai.haehnle at amd.com>

This exercises a required DCC decompression path for Radeon VI.
---
 .../execution/write-to-rendered-image.shader_test  | 73 ++++++++++++++++++++++
 1 file changed, 73 insertions(+)
 create mode 100644 tests/spec/arb_shader_image_load_store/execution/write-to-rendered-image.shader_test

diff --git a/tests/spec/arb_shader_image_load_store/execution/write-to-rendered-image.shader_test b/tests/spec/arb_shader_image_load_store/execution/write-to-rendered-image.shader_test
new file mode 100644
index 0000000..6976c85
--- /dev/null
+++ b/tests/spec/arb_shader_image_load_store/execution/write-to-rendered-image.shader_test
@@ -0,0 +1,73 @@
+# Verify that after a texture has been rendered to, image stores and loads
+# work correctly.
+#
+# The intention is to check interactions with compression buffers; in
+# particular, this exercises a required decompression path with DCC on
+# Radeon VI+
+
+[require]
+GL >= 3.3
+GLSL >= 3.30
+GL_ARB_shader_image_load_store
+SIZE 256 256
+
+[vertex shader passthrough]
+
+[fragment shader]
+#version 330
+#extension GL_ARB_shader_image_load_store: enable
+
+uniform int read;
+uniform int write;
+uniform vec4 color;
+layout(rgba8) uniform image2D imgRead;
+writeonly uniform image2D imgWrite;
+out vec4 outcolor;
+
+void main()
+{
+	ivec2 coords = ivec2(gl_FragCoord.xy);
+
+	if (read != 0)
+		outcolor = imageLoad(imgRead, coords);
+	else
+		outcolor = color;
+
+	if (write != 0)
+		imageStore(imgWrite, coords, color);
+}
+
+[test]
+# Use textures that are large enough to actually trigger the use
+# of compression.
+texture rgbw 0 (256, 256) GL_RGBA8
+image texture 0 GL_RGBA8
+texture rgbw 1 (256, 256) GL_RGBA8
+image texture 1 GL_RGBA8
+
+# Draw red to texture 1
+uniform int read 0
+uniform int write 0
+uniform int imgRead 0
+uniform int imgWrite 0
+uniform vec4 color 1.0 0.0 0.0 1.0
+fb tex 2d 1
+draw rect -1 -1 2 2
+
+# Store green to texture 1
+uniform int read 0
+uniform int write 1
+uniform int imgRead 1
+uniform int imgWrite 1
+uniform vec4 color 0.0 1.0 0.0 1.0
+fb tex 2d 0
+draw rect -1 -1 2 2
+
+memory barrier GL_TEXTURE_FETCH_BARRIER_BIT
+
+# Read from texture 1
+uniform int read 1
+uniform int write 0
+draw rect -1 -1 2 2
+
+probe all rgba 0.0 1.0 0.0 1.0
-- 
2.5.0



More information about the Piglit mailing list