3 varying vec2 v2; // ERROR, varying reserved
5 highp in vec4 badorder;
6 out invariant vec4 badorder2;
7 in centroid vec4 badorder4; // ERROR, no centroid input to vertex stage
8 out flat vec4 badorder3;
9 void bar(in const float a);
10 void bar2(highp in float b);
11 smooth flat out vec4 rep; // ERROR, replicating interpolation qualification
12 centroid sample out vec4 rep2; // ERROR, replicating auxiliary qualification
13 in uniform vec4 rep3; // ERROR, replicating storage qualification
18 const int b = anonconst; // ERROR at global scope
20 const int foo() // ERROR, no const functions
23 const int b = anonconst;
24 const int c = a; // still compile-time const
25 const int d = b; // not a compile-time const
38 int k = j; // ERROR, j is undeclared
39 int m = k; // ERROR, k is undeclared
40 int n = j; // ERROR, j is undeclared
44 int kk = jj; // ERROR, jj is undeclared
47 const float cx = 4.20;
48 const float dx = 4.20;
50 void bar(in highp volatile vec4 v)
66 layout(binding = 3) uniform; // ERROR
67 layout(binding = 3) uniform boundblock { int aoeu; } boundInst;
68 layout(binding = 7) uniform anonblock { int aoeu; } ;
69 layout(location = 1) in; // ERROR
70 layout(binding = 1) in inblock { int aoeua; }; // ERROR
71 layout(binding = 100000) uniform anonblock2 { int aooeu; } ;
72 layout(binding = 4) uniform sampler2D sampb1;
73 layout(binding = 5) uniform sampler2D sampb2[10];
74 layout(binding = 80) uniform sampler2D sampb3; // ERROR, binding too big
75 layout(binding = 31) uniform sampler2D sampb4;
76 layout(binding = 79) uniform sampler2D sampb5[2]; // ERROR, binding too big
78 int fgfg(float f, mediump int i);
79 int fgfg(float f, highp int i);
82 float gl_ClipDistance[4];
85 patch in vec4 patchIn; // ERROR
86 patch out vec4 patchOut; // ERROR
93 int a2 = m43.length();
94 a2 += m43[1].length();
96 const float b = 2 * a1;
97 int a = gl_MinProgramTexelOffset + gl_MaxProgramTexelOffset;
100 const int comma0 = (2, 3); // ERROR
101 int comma1[(2, 3)]; // ERROR
103 layout(r32i) uniform iimage2D iimg2D;
104 layout(rgba32i) uniform iimage2D iimg2Drgba;
105 layout(rgba32f) uniform image2D img2Drgba;
106 layout(r32ui) uniform uimage2D uimg2D;
107 uniform image2DMS img2DMS; // ERROR image variables not declared writeonly must have format layout qualifier
108 uniform writeonly image2DMS img2DMSWO;
112 imageAtomicCompSwap(iimg2D, ivec2(i,i), i, i);
113 imageAtomicAdd(uimg2D, ivec2(i,i), uint(i));
114 imageAtomicMin(iimg2Drgba, ivec2(i,i), i); // ERROR iimg2Drgba does not have r32i layout
115 imageAtomicMax(img2Drgba, ivec2(i,i), i); // ERROR img2Drgba is not integer image
116 ivec4 pos = imageLoad(iimg2D, ivec2(i,i));
117 vec4 col = imageLoad(img2DMS, ivec2(i,i), i);
118 imageStore(img2DMSWO, ivec2(i,i), i, vec4(0));
119 imageLoad(img2DMSWO, ivec2(i,i), i); // ERROR, drops writeonly
122 volatile float vol; // ERROR, not an image
123 readonly int vol2; // ERROR, not an image
125 void passr(coherent readonly iimage2D image)
129 layout(r32i) coherent readonly uniform iimage2D qualim1;
130 layout(r32i) coherent volatile readonly uniform iimage2D qualim2;
134 passr(qualim1); // ERROR, changing formats
135 passr(qualim2); // ERROR, drops volatile, ERROR, changing formats
136 passr(iimg2D); // ERROR, changing formats
139 layout(rg8i) uniform uimage2D i1bad; // ERROR, type mismatch
140 layout(rgba32i) uniform image2D i2bad; // ERROR, type mismatch
141 layout(rgba32f) uniform uimage2D i3bad; // ERROR, type mismatch
142 layout(r8_snorm) uniform iimage2D i4bad; // ERROR, type mismatch
143 layout(rgba32ui) uniform iimage2D i5bad; // ERROR, type mismatch
144 layout(r8ui) uniform iimage2D i6bad; // ERROR, type mismatch
147 layout(offset = 16) int foo; // ERROR
150 uniform sampler1D samp1D;
\r
151 uniform sampler1DShadow samp1Ds;
\r
157 levels = textureQueryLevels(samp1D); // ERROR, not until 430
\r
158 levels = textureQueryLevels(samp1Ds); // ERROR, not until 430
\r
161 layout(binding=0) writeonly uniform image1D badArray[];
\r
162 layout(binding = 74) uniform sampler2D u_sampler0[6];