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

Glenn Kennard glenn.kennard at gmail.com
Thu Nov 12 14:22:54 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.

 .../execution/helper-invocation.shader_test        | 30 ++++++++++++++++++++++
 1 file changed, 30 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..d72d490
--- /dev/null
+++ b/tests/spec/glsl-4.50/execution/helper-invocation.shader_test
@@ -0,0 +1,30 @@
+[require]
+GL >= 4.5
+GLSL >= 4.50
+GL_ARB_derivative_control
+
+[vertex shader passthrough]
+
+[fragment shader]
+#version 450
+#extension GL_ARB_derivative_control : require
+precision highp float;
+out vec4 color;
+void main() {
+  float helper = float(gl_HelperInvocation);
+  color = vec4(abs(dFdxFine(helper)), abs(dFdyFine(helper)), 0, 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