---
 .../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

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to