[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