[Piglit] [PATCH v4] glsl-4.50: add a test for helper invocations

Glenn Kennard glenn.kennard at gmail.com
Thu Nov 12 14:55:33 PST 2015


Tested on r600g implementation

Signed-off-by: Glenn Kennard <glenn.kennard at gmail.com>
---
Ported to desktop GL 4.5 from Ilia's GLES test case, needed since r600g uses
coarse derivatives by default, and shader control over that requires
GL_ARB_derivative_control.

Changes since v3:
  - Removed redundant check for GL_ARB_derivative_control since the functions
  are included in 4.5 and already enabled by Mesa when using that version
  override.
  - Write helper to blue channel which should never be present in framebuffer
  output, in order to prevent some false positives.

 .../execution/helper-invocation.shader_test        | 27 ++++++++++++++++++++++
 1 file changed, 27 insertions(+)
 create mode 100644 tests/spec/glsl-4.50/execution/helper-invocation.shader_test

diff --git a/tests/spec/glsl-4.50/execution/helper-invocation.shader_test b/tests/spec/glsl-4.50/execution/helper-invocation.shader_test
new file mode 100644
index 0000000..ec104c6
--- /dev/null
+++ b/tests/spec/glsl-4.50/execution/helper-invocation.shader_test
@@ -0,0 +1,27 @@
+[require]
+GL >= 4.5
+GLSL >= 4.50
+
+[vertex shader passthrough]
+
+[fragment shader]
+#version 450
+out vec4 color;
+void main() {
+  float helper = float(gl_HelperInvocation);
+  color = vec4(abs(dFdxFine(helper)), abs(dFdyFine(helper)), helper, 1);
+}
+
+[test]
+clear color 0.2 0.2 0.2 0.2
+clear
+
+# A single pixel being drawn, guaranteed that both the X and Y
+# derivatives will be 1.
+draw rect ortho 0 0 1 1
+probe rect rgba (0, 0, 1, 1) (1, 1, 0, 1)
+
+# A larger rect being drawn, check that the first 2x2 quad, all of
+# which is definitely going to be covered, actually ended up as all 0's
+draw rect ortho 2 2 10 10
+probe rect rgba (2, 2, 2, 2) (0, 0, 0, 1)
-- 
1.9.1



More information about the Piglit mailing list