ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_shading_language_420pack / execution / aggregate-initializer-sized-array.shader_test
blobdf2826268a8a17471a1ff831421dcb4054fcd6ae
1 /* The ARB_shading_language_420pack suggests:
2  *
3  *    Verify that the following two arrays are identical:
4  *
5  *        vec4 a[12] = vec4 [] (vec4(1.2), vec4(0.0), vec4(0.0), vec4(0.0),
6  *                              vec4(0.0), vec4(0.0), vec4(0.0), vec4(2.4),
7  *                              vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0));
8  *        vec4 b[12] =        { vec4(1.2), vec4(0.0), vec4(0.0), vec4(0.0),
9  *                              vec4(0.0), vec4(0.0), vec4(0.0), vec4(2.4) }; [sic]
10  *
11  * Of course, it means to include a final row of four vec4(0.0) in the initializer
12  * of b[12].
13  */
15 [require]
16 GLSL >= 1.30
17 GL_ARB_shading_language_420pack
19 [vertex shader]
20 #extension GL_ARB_shading_language_420pack: enable
22 in vec4 vertex;
23 out vec4 color;
25 void main()
27     vec4 a[12] = vec4 [] (vec4(1.2), vec4(0.0), vec4(0.0), vec4(0.0),
28                           vec4(0.0), vec4(0.0), vec4(0.0), vec4(2.4),
29                           vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0));
30     vec4 b[12] =        { vec4(1.2), vec4(0.0), vec4(0.0), vec4(0.0),
31                           vec4(0.0), vec4(0.0), vec4(0.0), vec4(2.4),
32                           vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0) };
34     color = vec4(0.0, 1.0, 0.0, 1.0);
36     if (a.length() != b.length()) {
37         color = vec4(0.0, 0.0, 1.0, 1.0);
38     } else {
39         for (int i = 0; i < a.length(); i++) {
40             if (a[i] != b[i]) {
41                 color = vec4(1.0, 0.0, 0.0, 1.0);
42             }
43         }
44     }
45     gl_Position = vertex;
48 [fragment shader]
49 in vec4 color;
50 out vec4 frag_color;
52 void main() {
53     frag_color = color;
56 [test]
57 draw rect -1 -1 2 2
58 probe all rgba 0.0 1.0 0.0 1.0