1[require]
2GLSL >= 1.50
3GL_ARB_fragment_layer_viewport
4
5#
6# If the geometry stage makes no static assignment to gl_Layer,
7# the fragment stage will read zero.
8#
9# This test covers the case where a GS is present, but does not write gl_Layer.
10#
11
12[vertex shader]
13#version 150
14in vec4 piglit_vertex;
15
16void main()
17{
18	gl_Position = piglit_vertex;
19}
20
21[geometry shader]
22#version 150
23
24layout(triangles) in;
25layout(triangle_strip, max_vertices=3) out;
26
27void main()
28{
29	for (int i = 0; i < 3; i++) {
30		gl_Position = gl_in[i].gl_Position;
31		EmitVertex();
32	}
33}
34
35[fragment shader]
36#version 150
37#extension GL_ARB_fragment_layer_viewport: require
38
39void main()
40{
41	if (gl_Layer == 0)
42		gl_FragColor = vec4(0,1,0,0);
43	else
44		gl_FragColor = vec4(1,0,0,0);
45}
46
47[test]
48clear color 0.0 0.0 0.0 0.0
49clear
50draw rect -1 -1 2 2
51probe all rgb 0.0 1.0 0.0
52