ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_shading_language_420pack / execution / aggregate-dynamic-initializer-unsized-array.shader_test
blob8f6d5c1e1995c881957d91021119bada8cfb9098
1 /* The ARB_shading_language_420pack suggests:
2  *
3  *    Verify that the following two arrays are identical:
4  *
5  *        vec4 a[] = 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(0.0), vec4(0.0), vec4(0.0), vec4(3.6));
9  *        vec4 b[] =        { vec4(1.2), vec4(0.0), vec4(0.0), vec4(0.0),
10  *                            vec4(0.0), vec4(0.0), vec4(0.0), vec4(2.4),
11  *                            vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0),
12  *                            vec4(0.0), vec4(0.0), vec4(0.0), vec4(3.6) };
13  *
14  * This test differs from aggregate-initializer-unsized-array.shader_test in that
15  * it specifies one dynamic variable, to further test the compiler.  Otherwise,
16  * the initializer is constant folded away. The arrays should still be identical.
17  */
19 [require]
20 GLSL >= 1.30
21 GL_ARB_shading_language_420pack
23 [vertex shader]
24 #extension GL_ARB_shading_language_420pack: enable
26 in vec4 vertex;
27 out vec4 color;
29 void main()
31     vec4 a[] = vec4 [] (vec4(1.2), vec4(0.0), vec4(0.0), vec4(0.0),
32                         vec4(0.0), vec4(0.0), vec4(0.0), vec4(2.4),
33                         vec4(vertex.x), vec4(0.0), vec4(0.0), vec4(0.0),
34                         vec4(0.0), vec4(0.0), vec4(0.0), vec4(3.6));
35     vec4 b[] =        { vec4(1.2), vec4(0.0), vec4(0.0), vec4(0.0),
36                         vec4(0.0), vec4(0.0), vec4(0.0), vec4(2.4),
37                         vec4(vertex.x), vec4(0.0), vec4(0.0), vec4(0.0),
38                         vec4(0.0), vec4(0.0), vec4(0.0), vec4(3.6) };
40     color = vec4(0.0, 1.0, 0.0, 1.0);
42     if (a.length() != b.length()) {
43         color = vec4(0.0, 0.0, 1.0, 1.0);
44     } else {
45         for (int i = 0; i < a.length(); i++) {
46             if (a[i] != b[i]) {
47                 color = vec4(1.0, 0.0, 0.0, 1.0);
48             }
49         }
50     }
51     gl_Position = vertex;
54 [fragment shader]
55 in vec4 color;
56 out vec4 frag_color;
58 void main() {
59     frag_color = color;
62 [test]
63 draw rect -1 -1 2 2
64 probe all rgba 0.0 1.0 0.0 1.0