ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_geometry_shader4 / execution / clip-distance-in-explicitly-sized.shader_test
blobe859c880f962ed28db494eeb80162d32cc49e9d1
1 # This test checks that the GLSL compiler respects the size of
2 # gl_ClipDistanceIn when it is explicitly declared in the geometry
3 # shader.
5 [require]
6 GL >= 2.0
7 GLSL >= 1.30
8 GL_ARB_geometry_shader4
10 [vertex shader]
11 #version 130
12 out float gl_ClipDistance[2];
13 in vec4 vertex;
15 void main()
17   gl_Position = vertex;
20 [geometry shader]
21 #version 130
22 #extension GL_ARB_geometry_shader4: enable
24 in float gl_ClipDistanceIn[3][2];
25 flat out int outer_size;
26 flat out int inner_size;
28 void main()
30   for (int i = 0; i < 3; i++) {
31     gl_Position = gl_PositionIn[i];
32     outer_size = gl_ClipDistanceIn.length();
33     inner_size = gl_ClipDistanceIn[0].length();
34     EmitVertex();
35   }
38 [geometry layout]
39 input type GL_TRIANGLES
40 output type GL_TRIANGLE_STRIP
41 vertices out 3
43 [fragment shader]
44 #version 130
46 flat in int outer_size;
47 flat in int inner_size;
49 void main()
51   if (outer_size != 3)
52     gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
53   else if (inner_size != 2)
54     gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
55   else
56     gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
59 [vertex data]
60 vertex/float/2
61 -1.0 -1.0
62  1.0 -1.0
63  1.0  1.0
64 -1.0  1.0
66 [test]
67 draw arrays GL_TRIANGLE_FAN 0 4
68 probe all rgba 0.0 1.0 0.0 1.0