ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_tessellation_shader / execution / variable-indexing / tcs-input-array-vec2-index-rd.shader_test
blobcb4528403e13986a43cdbe3d6edb1de841ab0689
1 [require]
2 GLSL >= 1.50
3 GL_ARB_tessellation_shader
5 [vertex shader]
6 #version 150
8 in vec4 piglit_vertex;
10 out block {
11   vec2 m1[16];
12   vec2 m2[15];
13 } blk;
15 void main()
17     gl_Position = piglit_vertex;
19     for (int i = 0; i < 16; i++)
20         blk.m1[i] = vec2(1.0, 1.1) + vec2(i);
22     for (int i = 0; i < 15; i++)
23         blk.m2[i] = vec2(1.0, 1.1) + vec2(16+i);
26 [tessellation control shader]
27 #version 150
28 #extension GL_ARB_tessellation_shader : require
29 layout(vertices = 4) out;
31 uniform int index;
32 uniform vec4 expect;
33 in block {
34     vec2 m1[16];
35     vec2 m2[15];
36 } blk[];
37 out vec4 color[];
39 void main()
41     color[gl_InvocationID] =
42         ((index >= 16 ? blk[gl_InvocationID].m2[index-16]
43                       : blk[gl_InvocationID].m1[index]) == expect.xy)
44         ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, 1.0);
46     gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
47     gl_TessLevelOuter = float[4](1.0, 1.0, 1.0, 1.0);
48     gl_TessLevelInner = float[2](1.0, 1.0);
51 [tessellation evaluation shader]
52 #version 150
53 #extension GL_ARB_tessellation_shader : require
54 layout(quads, equal_spacing) in;
56 in vec4 color[];
57 out vec4 fscolor;
59 #define INTERP_QUAD(INi, OUT) do { \
60     vec4 v[4]; \
61     for (int i = 0; i < 4; i++) v[i] = INi; \
62     OUT = mix(mix(v[0], v[1], gl_TessCoord[0]), mix(v[2], v[3], gl_TessCoord[0]), \
63               gl_TessCoord[1]); \
64 } while(false)
66 void main() {
67     INTERP_QUAD(gl_in[i].gl_Position, gl_Position);
68     INTERP_QUAD(color[i], fscolor);
71 [fragment shader]
72 #version 150
73 in vec4 fscolor;
74 out vec4 outcolor;
76 void main()
78     outcolor = fscolor;
81 [test]
82 clear color 0.5 0.5 0.5 0.5
83 clear
85 uniform int index 0
86 uniform vec4 expect 1 1.1 1.2 1.3
87 draw rect patch -1 -1 0.09 0.09
88 probe rgb 6 6 0.0 1.0 0.0
90 uniform int index 1
91 uniform vec4 expect 2 2.1 2.2 2.3
92 draw rect patch -0.9 -1 0.09 0.09
93 probe rgb 18 6 0.0 1.0 0.0
95 uniform int index 2
96 uniform vec4 expect 3 3.1 3.2 3.3
97 draw rect patch -0.8 -1 0.09 0.09
98 probe rgb 31 6 0.0 1.0 0.0
100 uniform int index 3
101 uniform vec4 expect 4 4.1 4.2 4.3
102 draw rect patch -0.7 -1 0.09 0.09
103 probe rgb 43 6 0.0 1.0 0.0
105 uniform int index 4
106 uniform vec4 expect 5 5.1 5.2 5.3
107 draw rect patch -0.6 -1 0.09 0.09
108 probe rgb 56 6 0.0 1.0 0.0
110 uniform int index 5
111 uniform vec4 expect 6 6.1 6.2 6.3
112 draw rect patch -0.5 -1 0.09 0.09
113 probe rgb 68 6 0.0 1.0 0.0
115 uniform int index 6
116 uniform vec4 expect 7 7.1 7.2 7.3
117 draw rect patch -0.4 -1 0.09 0.09
118 probe rgb 81 6 0.0 1.0 0.0
120 uniform int index 7
121 uniform vec4 expect 8 8.1 8.2 8.3
122 draw rect patch -0.3 -1 0.09 0.09
123 probe rgb 93 6 0.0 1.0 0.0
125 uniform int index 8
126 uniform vec4 expect 9 9.1 9.2 9.3
127 draw rect patch -0.2 -1 0.09 0.09
128 probe rgb 106 6 0.0 1.0 0.0
130 uniform int index 9
131 uniform vec4 expect 10 10.1 10.2 10.3
132 draw rect patch -0.1 -1 0.09 0.09
133 probe rgb 118 6 0.0 1.0 0.0
135 uniform int index 10
136 uniform vec4 expect 11 11.1 11.2 11.3
137 draw rect patch 0 -1 0.09 0.09
138 probe rgb 131 6 0.0 1.0 0.0
140 uniform int index 11
141 uniform vec4 expect 12 12.1 12.2 12.3
142 draw rect patch 0.1 -1 0.09 0.09
143 probe rgb 143 6 0.0 1.0 0.0
145 uniform int index 12
146 uniform vec4 expect 13 13.1 13.2 13.3
147 draw rect patch 0.2 -1 0.09 0.09
148 probe rgb 156 6 0.0 1.0 0.0
150 uniform int index 13
151 uniform vec4 expect 14 14.1 14.2 14.3
152 draw rect patch 0.3 -1 0.09 0.09
153 probe rgb 168 6 0.0 1.0 0.0
155 uniform int index 14
156 uniform vec4 expect 15 15.1 15.2 15.3
157 draw rect patch 0.4 -1 0.09 0.09
158 probe rgb 181 6 0.0 1.0 0.0
160 uniform int index 15
161 uniform vec4 expect 16 16.1 16.2 16.3
162 draw rect patch 0.5 -1.0 0.09 0.09
163 probe rgb 193 6 0.0 1.0 0.0
165 uniform int index 16
166 uniform vec4 expect 17 17.1 17.2 17.3
167 draw rect patch -1 -0.9 0.09 0.09
168 probe rgb 6 18 0.0 1.0 0.0
170 uniform int index 17
171 uniform vec4 expect 18 18.1 18.2 18.3
172 draw rect patch -0.9 -0.9 0.09 0.09
173 probe rgb 18 18 0.0 1.0 0.0
175 uniform int index 18
176 uniform vec4 expect 19 19.1 19.2 19.3
177 draw rect patch -0.8 -0.9 0.09 0.09
178 probe rgb 31 18 0.0 1.0 0.0
180 uniform int index 19
181 uniform vec4 expect 20 20.1 20.2 20.3
182 draw rect patch -0.7 -0.9 0.09 0.09
183 probe rgb 43 18 0.0 1.0 0.0
185 uniform int index 20
186 uniform vec4 expect 21 21.1 21.2 21.3
187 draw rect patch -0.6 -0.9 0.09 0.09
188 probe rgb 56 18 0.0 1.0 0.0
190 uniform int index 21
191 uniform vec4 expect 22 22.1 22.2 22.3
192 draw rect patch -0.5 -0.9 0.09 0.09
193 probe rgb 68 18 0.0 1.0 0.0
195 uniform int index 22
196 uniform vec4 expect 23 23.1 23.2 23.3
197 draw rect patch -0.4 -0.9 0.09 0.09
198 probe rgb 81 18 0.0 1.0 0.0
200 uniform int index 23
201 uniform vec4 expect 24 24.1 24.2 24.3
202 draw rect patch -0.3 -0.9 0.09 0.09
203 probe rgb 93 18 0.0 1.0 0.0
205 uniform int index 24
206 uniform vec4 expect 25 25.1 25.2 25.3
207 draw rect patch -0.2 -0.9 0.09 0.09
208 probe rgb 106 18 0.0 1.0 0.0
210 uniform int index 25
211 uniform vec4 expect 26 26.1 26.2 26.3
212 draw rect patch -0.1 -0.9 0.09 0.09
213 probe rgb 118 18 0.0 1.0 0.0
215 uniform int index 26
216 uniform vec4 expect 27 27.1 27.2 27.3
217 draw rect patch 0 -0.9 0.09 0.09
218 probe rgb 131 18 0.0 1.0 0.0
220 uniform int index 27
221 uniform vec4 expect 28 28.1 28.2 28.3
222 draw rect patch 0.1 -0.9 0.09 0.09
223 probe rgb 143 18 0.0 1.0 0.0
225 uniform int index 28
226 uniform vec4 expect 29 29.1 29.2 29.3
227 draw rect patch 0.2 -0.9 0.09 0.09
228 probe rgb 156 18 0.0 1.0 0.0
230 uniform int index 29
231 uniform vec4 expect 30 30.1 30.2 30.3
232 draw rect patch 0.3 -0.9 0.09 0.09
233 probe rgb 168 18 0.0 1.0 0.0
235 uniform int index 30
236 uniform vec4 expect 31 31.1 31.2 31.3
237 draw rect patch 0.4 -0.9 0.09 0.09
238 probe rgb 181 18 0.0 1.0 0.0