[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