ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_shading_language_420pack / execution / aggregate-dynamic-initializer-matrix.shader_test
blob478767ed0725896627a8a001a4a3d545d8f598dd
1 /* The ARB_shading_language_420pack suggests:
2  *
3  *     Verify that the following three matrices are identical:
4  *
5  *         mat2x2 a = mat2(  vec2( 1.0, 0.0 ), vec2( 0.0, 1.0 ) );
6  *         mat2x2 b =      { vec2( 1.0, 0.0 ), vec2( 0.0, 1.0 ) };
7  *         mat2x2 c =      {     { 1.0, 0.0 },     { 0.0, 1.0 } };
8  *
9  * This test differs from aggregate-initializer-matrix.shader_test
10  * in that it includes one dynamic variable, to further test the
11  * compiler.  Otherwise, the initializer is constant folded away.
12  * The matrices should still be identical.
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     mat2x2 a = mat2(  vec2( 1.0, vertex.x ), vec2( 0.0, 1.0 ) );
28     mat2x2 b =      { vec2( 1.0, vertex.x ), vec2( 0.0, 1.0 ) };
29     mat2x2 c =      {     { 1.0, vertex.x },     { 0.0, 1.0 } };
31     color = vec4(0.0, 1.0, 0.0, 1.0);
33     if (a.length() != b.length() || a.length() != c.length()) {
34         color = vec4(0.0, 0.0, 1.0, 1.0);
35     } else {
36         for (int i = 0; i < a.length(); i++) {
37             if (a[i] != b[i] || a[i] != c[i]) {
38                 color = vec4(1.0, 0.0, 0.0, 1.0);
39             }
40         }
41     }
42     gl_Position = vertex;
45 [fragment shader]
46 in vec4 color;
47 out vec4 frag_color;
49 void main() {
50     frag_color = color;
53 [test]
54 draw rect -1 -1 2 2
55 probe all rgba 0.0 1.0 0.0 1.0