[Piglit] [PATCH 11/12] arb_gpu_shader5: Test using only the subtraction from usubBorrow in the vs.

Matt Turner mattst88 at gmail.com
Mon Sep 23 16:13:29 PDT 2013


---
 .../vs-usubBorrow-only-sub.shader_test             | 56 ++++++++++++++++++++++
 1 file changed, 56 insertions(+)
 create mode 100644 tests/spec/arb_gpu_shader5/execution/built-in-functions/vs-usubBorrow-only-sub.shader_test

diff --git a/tests/spec/arb_gpu_shader5/execution/built-in-functions/vs-usubBorrow-only-sub.shader_test b/tests/spec/arb_gpu_shader5/execution/built-in-functions/vs-usubBorrow-only-sub.shader_test
new file mode 100644
index 0000000..0fccb4b
--- /dev/null
+++ b/tests/spec/arb_gpu_shader5/execution/built-in-functions/vs-usubBorrow-only-sub.shader_test
@@ -0,0 +1,56 @@
+[require]
+GLSL >= 1.50
+GL_ARB_gpu_shader5
+
+[vertex shader]
+#extension GL_ARB_gpu_shader5 : enable
+
+in vec4 piglit_vertex;
+out vec4 color;
+
+uniform uvec4 x, y;
+uniform uvec4 expected_diff;
+
+void main()
+{
+	gl_Position = piglit_vertex;
+
+	color = vec4(0.0, 1.0, 0.0, 1.0);
+
+	/* Test that optimization passes like dead code elimination don't
+	 * eliminate the subtraction if the borrow result isn't used.
+	 */
+	uvec4 borrow;
+	uvec4 diff = usubBorrow(x, y, borrow);
+
+	if (diff != expected_diff)
+		color.r = 1.0;
+}
+
+[fragment shader]
+in vec4 color;
+out vec4 frag_color;
+
+void main()
+{
+	frag_color = color;
+}
+
+[test]
+uniform uvec4 x 1 2 3 4
+uniform uvec4 y 0 1 2 3
+uniform uvec4 expected_diff 1 1 1 1
+draw rect -1 -1 2 2
+probe all rgba 0.0 1.0 0.0 1.0
+
+uniform uvec4 x 4 3 2 1
+uniform uvec4 y 4 4 4 4
+uniform uvec4 expected_diff 0 0xFFFFFFFF 0xFFFFFFFE 0xFFFFFFFD
+draw rect -1 -1 2 2
+probe all rgba 0.0 1.0 0.0 1.0
+
+uniform uvec4 x 0xFFFFFFFE 0xFFFFFFFF 0x80000000 0
+uniform uvec4 y 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0
+uniform uvec4 expected_diff 0xFFFFFFFF 0 0x80000001 0
+draw rect -1 -1 2 2
+probe all rgba 0.0 1.0 0.0 1.0
-- 
1.8.3.2



More information about the Piglit mailing list