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