[Piglit] [PATCH 2/2] arb_shader_atomic_counters: add test with more complex layout of counters

Nicolai Hähnle nhaehnle at gmail.com
Thu Oct 13 10:43:24 UTC 2016


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

This hits an error in the GLSL->TGSI conversion.
---
 .../execution/fs-layout.shader_test                | 64 ++++++++++++++++++++++
 1 file changed, 64 insertions(+)
 create mode 100644 tests/spec/arb_shader_atomic_counters/execution/fs-layout.shader_test

diff --git a/tests/spec/arb_shader_atomic_counters/execution/fs-layout.shader_test b/tests/spec/arb_shader_atomic_counters/execution/fs-layout.shader_test
new file mode 100644
index 0000000..7078195
--- /dev/null
+++ b/tests/spec/arb_shader_atomic_counters/execution/fs-layout.shader_test
@@ -0,0 +1,64 @@
+# Test layouts of atomic counters in a fragment shader.
+
+[require]
+GLSL >= 1.40
+GL_ARB_shader_atomic_counters
+INT GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS >= 2
+
+[vertex shader passthrough]
+
+[fragment shader]
+#version 140
+#extension GL_ARB_shader_atomic_counters: require
+
+layout(binding = 0, offset = 0) uniform atomic_uint a0;
+layout(binding = 1, offset = 0) uniform atomic_uint b0;
+layout(binding = 1, offset = 4) uniform atomic_uint b1[2];
+
+uniform uint a0_expected;
+uniform uint b0_expected;
+uniform uint b1_expected;
+uniform uint idx;
+
+out vec4 color;
+
+void main()
+{
+	uint old_a0 = atomicCounterIncrement(a0);
+	uint old_b0 = atomicCounterIncrement(b0);
+	uint old_b1 = atomicCounterIncrement(b1[idx]);
+
+	if (old_a0 != a0_expected) {
+		color = vec4(1.0, 0.0, float(old_a0) / 255.0, 1.0);
+		return;
+	}
+	if (old_b0 != b0_expected) {
+		color = vec4(1.0, 0.1, float(old_b0) / 255.0, 1.0);
+		return;
+	}
+	if (old_b1 != b1_expected) {
+		color = vec4(1.0, 0.2, float(old_b1) / 255.0, 1.0);
+		return;
+	}
+	color = vec4(0.0, 1.0, 0.0, 1.0);
+}
+
+[test]
+atomic counter buffer 0 1
+atomic counter buffer 1 3
+
+clear color 0.0 0.0 0.0 0.0
+clear
+
+atomic counter 0 0 17
+atomic counter 1 0 31
+atomic counter 1 1 4
+atomic counter 1 2 9
+
+uniform uint a0_expected 17
+uniform uint b0_expected 31
+uniform uint idx 1
+uniform uint b1_expected 9
+
+draw rect ortho 0 0 1 1
+probe rgba 0 0 0.0 1.0 0.0 1.0
-- 
2.7.4



More information about the Piglit mailing list