[Piglit] [PATCH 2/2] Test that varying packing can pack floats, ints, and uints together.
Paul Berry
stereotype441 at gmail.com
Wed Dec 19 08:30:52 PST 2012
---
.../varying-packing-mixed-types.shader_test | 60 ++++++++++++++++++++++
1 file changed, 60 insertions(+)
create mode 100644 tests/spec/glsl-1.30/execution/varying-packing-mixed-types.shader_test
diff --git a/tests/spec/glsl-1.30/execution/varying-packing-mixed-types.shader_test b/tests/spec/glsl-1.30/execution/varying-packing-mixed-types.shader_test
new file mode 100644
index 0000000..2956cd3
--- /dev/null
+++ b/tests/spec/glsl-1.30/execution/varying-packing-mixed-types.shader_test
@@ -0,0 +1,60 @@
+# Test that varying packing can properly pack floats, ints, and uints
+# together into the same varying slot.
+#
+# In order to force this to happen, we use a shader whose "varyings"
+# are a float, a uint, and an array of gl_MaxVaryingComponents-2 ints.
+# All "varyings" use the "flat" interpolation type, since we don't
+# intend to test the packing of interpolation types in this test.
+
+[require]
+GLSL >= 1.30
+
+[vertex shader]
+#version 130
+uniform float f_ref;
+uniform uint u_ref;
+uniform int i_ref;
+flat out float f;
+flat out uint u;
+flat out int ia[gl_MaxVaryingComponents - 2];
+
+void main()
+{
+ gl_Position = gl_Vertex;
+ f = f_ref;
+ u = u_ref;
+ for (int i = 0; i < gl_MaxVaryingComponents - 2; i++)
+ ia[i] = i_ref + i;
+}
+
+[fragment shader]
+#version 130
+uniform float f_ref;
+uniform uint u_ref;
+uniform int i_ref;
+flat in float f;
+flat in uint u;
+flat in int ia[gl_MaxVaryingComponents - 2];
+
+void main()
+{
+ bool failed = false;
+ if (distance(f, f_ref) > 0.00001)
+ failed = true;
+ if (u != u_ref)
+ failed = true;
+ for (int i = 0; i < gl_MaxVaryingComponents - 2; i++)
+ if (ia[i] != i_ref + i)
+ failed = true;
+ if (failed)
+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
+ else
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
+}
+
+[test]
+uniform int i_ref -1000
+uniform uint u_ref 0xfedcba98
+uniform float f_ref 3.1415926
+draw rect -1 -1 2 2
+probe all rgba 0.0 1.0 0.0 1.0
--
1.8.0.2
More information about the Piglit
mailing list