3 layout(location = 3) vec4 v4; // ERROR
\r
5 layout(location = 4) uniform vec4 uv4;
\r
7 layout(location = 2) in inb1 { vec4 v; } b1; // ERROR
\r
8 layout(location = 2) out outb1 { vec4 v; } b2; // ERROR
\r
11 float gl_ClipDistance[];
\r
16 gl_ClipDistance[2] = 3.7;
\r
21 in float g; // ERROR
\r
22 uniform float h; // ERROR
\r
23 invariant float i; // ERROR
\r
24 volatile float j; // ERROR
\r
25 layout(row_major) mat3 m3; // ERROR
\r
28 void foo3(invariant vec4 v4, // ERROR
\r
30 layout(location = 3) vec2 v2, // ERROR
\r
31 centroid vec3 cv3) // ERROR
\r
36 mat3x2 m[7]; // needs 7*3 locations
\r
37 float f; // needs 1 location
\r
38 }; // needs 22 locations
\r
40 layout(location = 10) out S cs[2]; // 10 through 10 + 2 * 22 - 1 = 53
\r
41 layout(location = 54) out float cf;
\r
42 layout(location = 53) out float cg; // ERROR, collision at 31
\r
44 layout(location = 10) in vec4 alias1;
\r
45 layout(location = 10) in vec4 alias2; // okay for vertex input on desktop
\r
47 out float gl_ClipDistance[17]; // ERROR, size too big
\r
49 // enhanced_layouts (most tests are in 440.*)
\r
51 layout(location = start*start - 2 - 4) in vec4 v6e; // ERROR
\r
53 layout(location = 28) in inblock2e {
\r
54 layout(location = 25) float f2; // ERROR
\r
58 layout(location = 50) float f1; // ERROR
\r
59 layout(location = 51) float f2; // ERROR
\r
62 layout(align=16, std140) uniform ubl4e { int a; } inst4e;// ERROR
\r
64 layout(align=32) uniform ubl9e { // ERROR
\r
65 layout(offset=12, align=4) float f; // ERROR
\r
66 layout(offset=20) float g; // ERROR
\r
69 layout(std140) uniform blocke {
\r
71 layout(offset = 32) vec3 b; // ERROR
\r
74 int aconste[gl_MaxTransformFeedbackBuffers]; // ERROR
\r
75 int bconste[gl_MaxTransformFeedbackInterleavedComponents]; // ERROR
\r
78 layout(xfb_offset=64) vec4 bbv; // ERROR
\r
81 layout(xfb_buffer = 3, xfb_stride = 64) out; // ERROR
\r
83 layout(xfb_buffer=2, xfb_offset=48, xfb_stride=80) out vec4 bge; // ERROR
\r
84 layout( xfb_offset=32, xfb_stride=64) out vec4 bhe; // ERROR
\r
86 layout(xfb_stride=80, xfb_buffer=2, xfb_offset=16) out bblck4e { // ERROR
\r
92 layout(xfb_offset=0) vec4 bbv1; // ERROR
\r
93 layout(xfb_stride=64, xfb_buffer=3, xfb_offset=48) vec4 bbv2; // ERROR
\r
96 #extension GL_ARB_enhanced_layouts : enable
\r
98 layout(align=16, std140) uniform ubl4 { int a; } inst4;
\r
99 layout(std430) uniform;
\r
101 layout(align=32) uniform ubl9 {
\r
102 layout(offset=12, align=4) float f;
\r
103 layout(offset=20) float g;
\r
106 layout(std140) uniform block {
\r
107 vec4 a; // a takes offsets 0-15
\r
108 layout(offset = 32) vec3 b; // b takes offsets 32-43
\r
111 int aconst[gl_MaxTransformFeedbackBuffers];
\r
112 int bconst[gl_MaxTransformFeedbackInterleavedComponents];
\r
114 const int start2 = 5;
\r
115 layout(location = start2 * start2 - 2 - 4) in vec4 v6;
\r
117 layout(location = 28) in inblock2 { // ERROR, input block in vertex shader, other errors are valid checks still...
\r
120 layout(location = 25) float f2;
\r
123 in ublock4 { // ERROR, input block in vertex shader, other errors are valid checks still...
\r
124 layout(location = 50) float f1;
\r
125 layout(location = 51) float f2;
\r
129 layout(xfb_offset=64) vec4 bbv;
\r
132 layout(xfb_buffer = 1, xfb_stride = 80) out; // default buffer is 3
\r
134 layout(xfb_buffer=1, xfb_offset=48, xfb_stride=80) out vec4 bg;
\r
135 layout( xfb_offset=32, xfb_stride=80) out vec4 bh;
\r
137 layout(xfb_stride=80, xfb_buffer=1, xfb_offset=16) out bblck4 {
\r
142 layout(xfb_offset=0) vec4 bbv1;
\r
143 layout(xfb_stride=80, xfb_buffer=1, xfb_offset=64) vec4 bbv2;
\r
146 shared vec4 sharedv; // ERROR
\r
150 barrier(); // ERROR
\r
152 memoryBarrierAtomicCounter();
\r
153 memoryBarrierBuffer();
\r
154 memoryBarrierShared(); // ERROR
\r
155 memoryBarrierImage();
\r
156 groupMemoryBarrier(); // ERROR
\r
159 buffer vec4 v; // ERROR
\r
161 uniform sampler2DMS s2dms;
\r
162 uniform usampler2DMSArray us2dmsa;
\r
163 layout(rgba32i) uniform iimage2DMS ii2dms;
\r
164 layout(rgba32f) uniform image2DMSArray i2dmsa;
\r
168 int s = textureSamples(s2dms); // ERROR
\r
169 s += textureSamples(us2dmsa); // ERROR
\r
170 s += imageSamples(ii2dms); // ERROR
\r
171 s += imageSamples(i2dmsa); // ERROR
\r
174 #extension GL_ARB_shader_texture_image_samples : enable
\r
178 int s = textureSamples(s2dms);
\r
179 s += textureSamples(us2dmsa);
\r
180 s += imageSamples(ii2dms);
\r
181 s += imageSamples(i2dmsa);
\r