[Piglit] [PATCH] arb_compute_shader: Add test for Mesa bug 93840

Jordan Justen jordan.l.justen at intel.com
Fri Feb 26 00:44:12 UTC 2016


Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93840
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
---
 .../linker/bug-93840.shader_test                   | 40 ++++++++++++++++++++++
 1 file changed, 40 insertions(+)
 create mode 100644 tests/spec/arb_compute_shader/linker/bug-93840.shader_test

diff --git a/tests/spec/arb_compute_shader/linker/bug-93840.shader_test b/tests/spec/arb_compute_shader/linker/bug-93840.shader_test
new file mode 100644
index 0000000..06dc899
--- /dev/null
+++ b/tests/spec/arb_compute_shader/linker/bug-93840.shader_test
@@ -0,0 +1,40 @@
+# Tests linking a shader with a large workgroup and local data set.
+#
+# This is related to:
+# Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93840
+#
+# There are two important elements to this test:
+#
+# 1. local workgroup size of 1024 based on the spec requirements.
+#
+# 2. Use a 'large' size of live local data. In the test this is
+#    controlled with the SIZE macro. This is hardware specific, and
+#    the value of 64 was chosen because it was observed to fail on the
+#    Mesa i965 driver.
+
+[require]
+GL >= 3.3
+GLSL >= 3.30
+GL_ARB_compute_shader
+GL_ARB_shader_atomic_counters
+
+[compute shader]
+#version 330
+#extension GL_ARB_compute_shader: enable
+
+layout(local_size_x = 1024) in;
+
+#define SIZE 64
+
+shared int sa[SIZE];
+
+void main()
+{
+    int a[SIZE] = sa;
+    a[int(gl_LocalInvocationIndex) % SIZE] += 1;
+    if (a[int(gl_LocalInvocationIndex) % SIZE] == 0)
+        sa[0] = 1;
+}
+
+[test]
+link success
-- 
2.7.0



More information about the Piglit mailing list