ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_geometry_shader4 / linker / verticesin-const.shader_test
blob4d2ad6e75fb206384b7864bd26ed13fb793fa7e2
1 [require]
2 GL >= 2.0
3 GLSL >= 1.30
4 GL_ARB_geometry_shader4
6 [vertex shader]
7 #version 130
9 in vec4 vertex;
11 out float gs_input[6];
12 void main()
14         for (int i = 0; i < 6; i++)
15                 gs_input[i] = 0.5;
16         gl_Position = vertex;
19 [geometry shader]
20 #version 130
21 #extension GL_ARB_geometry_shader4: enable
22 #line 22
24 uniform int zero;
25 uniform sampler2D tex;
26 uniform sampler2D tex_array[7];
28 in float gs_input[][6];
30 out vec4 color;
32 void main()
34         for (int i = 0; i < gl_VerticesIn; i++) {
35                 vec4 c = vec4(0, 0, 0, 1);
36                 c.x = texture(tex_array[gl_VerticesIn], vec2(0.5, 0.5)).x;
38                 const int three = gl_VerticesIn;
39                 if (three == 3)
40                         c.y = 1.0;
41                 else
42                         c.y = 0.0;
44                 /* We sample from a row of 8 pixels, the left 4 blue and the
45                  * right 4 white. Since we only use the red channel, the left 4
46                  * are 0, and the right 4 are 1. sample twice from the fifth
47                  * pixel in the row:
48                  */
49                 c.z = textureOffset(tex, vec2(3.0/16.0, 0.75),
50                                     ivec2(gl_VerticesIn, 0)).x;
51                 c.z *= textureOffset(tex, vec2(15.0/16.0, 0.75),
52                                      ivec2(gl_VerticesIn, 0)).x;
54                 gl_Position = gl_PositionIn[i];
55                 color = c;
56                 EmitVertex();
57         }
60 [geometry layout]
61 input type GL_TRIANGLES
62 output type GL_TRIANGLE_STRIP
63 vertices out 3
65 [fragment shader]
66 #version 130
68 in vec4 color;
70 void main()
72   gl_FragColor = color;
75 [vertex data]
76 vertex/float/2
77 -1.0 -1.0
78  1.0 -1.0
79  1.0  1.0
80 -1.0  1.0
82 [test]
83 uniform int tex_array[0] 1
84 uniform int tex_array[1] 1
85 uniform int tex_array[2] 1
86 uniform int tex_array[3] 2
87 uniform int tex_array[4] 1
88 uniform int tex_array[5] 1
89 uniform int tex_array[6] 1
90 uniform int tex 0
91 texture rgbw 0 (8, 8)
92 texture checkerboard 1 0 (8, 8) (0.0, 0.0, 0.0, 0.0) (0.0, 0.0, 0.0, 0.0)
93 texture checkerboard 2 0 (8, 8) (1.0, 1.0, 1.0, 1.0) (1.0, 1.0, 1.0, 1.0)
94 draw arrays GL_TRIANGLE_FAN 0 4
95 probe all rgb 1.0 1.0 1.0