[Piglit] [PATCH] Add glsl-1.20/execution/vsfs-unused-array-member.shader_test

Nicolai Hähnle nhaehnle at gmail.com
Mon Jul 25 16:05:11 UTC 2016


From: Nicolai Hähnle <nicolai.haehnle at amd.com>

Currently fails due to an error in Gallium st_glsl_to_tgsi. Observed in the
game Overlord.
---
I'm also going to send out a candidate fix to mesa-dev in a moment.

 .../execution/vsfs-unused-array-member.shader_test | 41 ++++++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100644 tests/spec/glsl-1.20/execution/vsfs-unused-array-member.shader_test

diff --git a/tests/spec/glsl-1.20/execution/vsfs-unused-array-member.shader_test b/tests/spec/glsl-1.20/execution/vsfs-unused-array-member.shader_test
new file mode 100644
index 0000000..821c57a
--- /dev/null
+++ b/tests/spec/glsl-1.20/execution/vsfs-unused-array-member.shader_test
@@ -0,0 +1,41 @@
+# This test verifies that varyings are assigned correctly when a fragment
+# shader doesn't read from all elements of a varying array.
+#
+# This used to fail due to a bug in st/mesa that was visible in Overlord.
+
+[require]
+GLSL >= 1.20
+
+[vertex shader]
+#version 120
+
+uniform vec4 data;
+
+varying vec4 a[3];
+varying float b;
+
+void main()
+{
+  a[0] = data.xxxx;
+  a[1] = data.yyyy;
+  a[2] = data.zzzz;
+  b = data.w;
+  gl_Position = gl_Vertex;
+}
+
+[fragment shader]
+#version 120
+
+varying vec4 a[3];
+varying float b;
+
+void main()
+{
+  gl_FragColor = vec4(a[0].x, a[2].x, b, 1.0);
+}
+
+[test]
+uniform vec4 data 0.2 0.4 0.6 0.8
+
+draw rect -1 -1 2 2
+probe all rgba 0.2 0.6 0.8 1.0
-- 
2.7.4



More information about the Piglit mailing list