Setup dependent external sources
[platform/upstream/VK-GL-CTS.git] / external / glslang / src / Test / 100Limits.vert
1 #version 100
2
3 int ga, gb;
4 float f;
5
6 uniform sampler2D fsa[3];
7 uniform float fua[10];
8 attribute mat3 am3;
9 attribute vec2 av2;
10 varying vec4 va[4];
11
12 const mat2 m2 = mat2(1.0);
13 const vec3 v3 = vec3(2.0);
14
15 void foo(inout float a) {}
16
17 int bar()
18 {
19     return 1;
20 }
21
22 void main()
23 {
24     while (ga < gb) { }
25
26     do { } while (false);
27
28     for (           ;              ;         );           // ERROR
29     for (           ;        ga==gb;         );           // ERROR
30     for (           ;              ;      f++);           // ERROR
31     for (     ga = 0;              ;         );           // ERROR
32     for ( bool a = false;          ;         );           // ERROR
33     for (float a = 0.0; a == sin(f);         );           // ERROR
34     for (  int a = 0;       a  < 10;   a *= 2);           // ERROR
35     for (  int a = 0;       a <= 20;      a++)  --a;      // ERROR
36     for (  int a = 0;       a <= 20;      a++)  { if (ga==0) a = 4; } // ERROR
37     for (float a = 0.0;   a <= 20.0; a += 2.0);
38     for (float a = 0.0;   a != 20.0; a -= 2.0)  { if (ga==0) ga = 4; }
39     for (float a = 0.0;   a == 20.0;      a--) for (float a = 0.0;   a == 20.0;      a--);  // two different 'a's, everything okay
40     for (float a = 0.0;   a <= 20.0; a += 2.0);
41     for (float a = 0.0;   a <= 20.0; a += 2.0);
42     for (float a = 0.0;   a > 2.0 * 20.0; a += v3.y);
43     for (float a = 0.0;   a >= 20.0; a += 2.0) foo(a);    // ERROR
44
45     int ia[9];
46
47     fsa[ga];  // ERROR
48     fua[ga];
49     am3[ga];  // ERROR
50     av2[ga];  // ERROR
51     va[2+ga]; // ERROR
52     m2[ga];   // ERROR
53     v3[ga/2]; // ERROR
54     ia[ga];   // ERROR
55
56     for (int a = 3; a >= 0; a--) {
57         fsa[a];
58         fua[a+2];
59         am3[3*a];
60         av2[3*a];
61         va[a-1];
62         m2[a/2];
63         v3[a];
64         ia[a];
65         ia[bar()];  // ERROR
66     }
67
68     fsa[2];
69     fua[3];
70     am3[2];
71     av2[1];
72     va[1];
73     m2[1];
74     v3[1];
75     ia[3];
76 }