[Piglit] [PATCH] Reproduce one of the problems contributing to FDO bug 40865

Paul Berry stereotype441 at gmail.com
Mon Jan 23 14:45:42 PST 2012


See https://bugs.freedesktop.org/show_bug.cgi?id=40865#c9
---
 .../execution/fs-assign-varied-struct.shader_test  |   29 ++++++++++++++++++
 .../execution/vs-assign-varied-struct.shader_test  |   32 ++++++++++++++++++++
 2 files changed, 61 insertions(+), 0 deletions(-)
 create mode 100644 tests/spec/glsl-1.20/execution/fs-assign-varied-struct.shader_test
 create mode 100644 tests/spec/glsl-1.20/execution/vs-assign-varied-struct.shader_test

diff --git a/tests/spec/glsl-1.20/execution/fs-assign-varied-struct.shader_test b/tests/spec/glsl-1.20/execution/fs-assign-varied-struct.shader_test
new file mode 100644
index 0000000..ce40040
--- /dev/null
+++ b/tests/spec/glsl-1.20/execution/fs-assign-varied-struct.shader_test
@@ -0,0 +1,29 @@
+# Test initialization of an array of structures where the elements of
+# the structure do not all have the same vector size.
+
+[require]
+GLSL >= 1.20
+
+[vertex shader]
+#version 120
+void main(void)
+{
+    gl_Position = gl_Vertex;
+}
+
+[fragment shader]
+#version 120
+void main(void)
+{
+    float x = 3.0;
+    struct s { float f; vec3 v; };
+    s a[1]=s[](s(x,vec3(x)));
+    if (a[0].f==3.0)
+      gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); // green
+    else
+      gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); // red
+}
+
+[test]
+draw rect -1 -1 2 2
+probe all rgba 0.0 1.0 0.0 1.0
diff --git a/tests/spec/glsl-1.20/execution/vs-assign-varied-struct.shader_test b/tests/spec/glsl-1.20/execution/vs-assign-varied-struct.shader_test
new file mode 100644
index 0000000..d7f306f
--- /dev/null
+++ b/tests/spec/glsl-1.20/execution/vs-assign-varied-struct.shader_test
@@ -0,0 +1,32 @@
+# Test initialization of an array of structures where the elements of
+# the structure do not all have the same vector size.
+#
+# This test reproduces the problem described in
+# https://bugs.freedesktop.org/show_bug.cgi?id=40865#c9.
+
+[require]
+GLSL >= 1.20
+
+[vertex shader]
+#version 120
+void main(void)
+{
+    float x = 3.0;
+    struct s { float f; vec3 v; };
+    s a[1]=s[](s(x,vec3(x)));
+    if (a[0].f==3.0)
+      gl_FrontColor = vec4(0.0, 1.0, 0.0, 1.0); // green
+    else
+      gl_FrontColor = vec4(1.0, 0.0, 0.0, 1.0); // red
+    gl_Position = gl_Vertex;
+}
+
+[fragment shader]
+void main(void)
+{
+    gl_FragColor = gl_Color;
+}
+
+[test]
+draw rect -1 -1 2 2
+probe all rgba 0.0 1.0 0.0 1.0
-- 
1.7.6.5



More information about the Piglit mailing list