summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gmail.com>2013-09-23 15:02:37 -0700
committerMatt Turner <mattst88@gmail.com>2013-10-04 13:26:25 -0700
commitb87d7d4ac10cd5f0970a000a852042d81925a8d9 (patch)
treee4a6485e52da5e0a2adf4c1c132b3a37855bc3d1
parent85064c9d07ddc282c22f1d9bfec4a75aca8591c3 (diff)
arb_gpu_shader5: Test using only the carry from uaddCarry in the vs.
-rw-r--r--tests/spec/arb_gpu_shader5/execution/built-in-functions/vs-uaddCarry-only-carry.shader_test62
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/spec/arb_gpu_shader5/execution/built-in-functions/vs-uaddCarry-only-carry.shader_test b/tests/spec/arb_gpu_shader5/execution/built-in-functions/vs-uaddCarry-only-carry.shader_test
new file mode 100644
index 000000000..6d7f53ff8
--- /dev/null
+++ b/tests/spec/arb_gpu_shader5/execution/built-in-functions/vs-uaddCarry-only-carry.shader_test
@@ -0,0 +1,62 @@
+[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_carry;
+
+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 addition if the carry result isn't used.
+ */
+ uvec4 carry;
+ uaddCarry(x, y, carry);
+
+ if (carry != expected_carry)
+ color.b = 1.0;
+}
+
+[fragment shader]
+in vec4 color;
+out vec4 frag_color;
+
+void main()
+{
+ frag_color = color;
+}
+
+[test]
+uniform uvec4 x 0 1 2 3
+uniform uvec4 y 1 2 3 4
+uniform uvec4 expected_carry 0 0 0 0
+draw rect -1 -1 2 2
+probe all rgba 0.0 1.0 0.0 1.0
+
+uniform uvec4 x 0 1 1 2
+uniform uvec4 y 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFE 0xFFFFFFFE
+uniform uvec4 expected_carry 0 1 0 1
+draw rect -1 -1 2 2
+probe all rgba 0.0 1.0 0.0 1.0
+
+uniform uvec4 x 2 3 2 3
+uniform uvec4 y 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFE 0xFFFFFFFE
+uniform uvec4 expected_carry 1 1 1 1
+draw rect -1 -1 2 2
+probe all rgba 0.0 1.0 0.0 1.0
+
+uniform uvec4 x 0x80000000 0x80000000 0x80000000 0x80000001
+uniform uvec4 y 0x80000000 0x80000001 0x7FFFFFFF 0x7FFFFFFF
+uniform uvec4 expected_carry 1 1 0 1
+draw rect -1 -1 2 2
+probe all rgba 0.0 1.0 0.0 1.0