In this test the geometry shader emits two flat shaded triangles and only
writes the color for the provoking vertex.

In this case the undefined values should be ignored and thus should
not affect the fragment stage.

Signed-off-by: Fabian Bieler <[email protected]>
---
 .../geometry/undefined-ignored-color.shader_test   | 64 ++++++++++++++++++++++
 1 file changed, 64 insertions(+)
 create mode 100644 
tests/spec/glsl-1.50/execution/geometry/undefined-ignored-color.shader_test

diff --git 
a/tests/spec/glsl-1.50/execution/geometry/undefined-ignored-color.shader_test 
b/tests/spec/glsl-1.50/execution/geometry/undefined-ignored-color.shader_test
new file mode 100644
index 0000000..e0acffa
--- /dev/null
+++ 
b/tests/spec/glsl-1.50/execution/geometry/undefined-ignored-color.shader_test
@@ -0,0 +1,64 @@
+# Draw two flat shaded triangles and only write the color for the provoking
+# vertex.
+#
+# In this case the undefined values should be ignored and thus should
+# not affect the fragment stage.
+[require]
+GLSL >= 1.50
+
+[vertex shader]
+in vec4 vertex;
+
+void main()
+{
+       gl_Position = vertex;
+}
+
+[geometry shader]
+layout(lines_adjacency) in;
+layout(triangle_strip, max_vertices = 6) out;
+
+flat out vec4 color;
+
+void main()
+{
+       gl_Position = gl_in[0].gl_Position;
+       /* no color write */
+       EmitVertex();
+       gl_Position = gl_in[1].gl_Position;
+       /* no color write */
+       EmitVertex();
+       gl_Position = gl_in[2].gl_Position;
+       color = vec4(0, 1, 0, 1);
+       EmitVertex();
+       EndPrimitive();
+
+       gl_Position = gl_in[2].gl_Position;
+       /* no color write */
+       EmitVertex();
+       gl_Position = gl_in[1].gl_Position;
+       /* no color write */
+       EmitVertex();
+       gl_Position = gl_in[3].gl_Position;
+       color = vec4(0, 1, 0, 1);
+       EmitVertex();
+}
+
+[fragment shader]
+flat in vec4 color;
+
+void main()
+{
+       gl_FragColor = color;
+}
+
+[vertex data]
+vertex/float/2
+-1.0 -1.0
+ 1.0 -1.0
+-1.0  1.0
+ 1.0  1.0
+
+[test]
+draw arrays GL_LINES_ADJACENCY 0 4
+probe all rgb 0.0 1.0 0.0
-- 
1.8.3.2

_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to