3 layout(local_size_x = 2) in;
\r
4 layout(local_size_x = 16) in; // ERROR, changing
\r
5 layout(local_size_z = 4096) in; // ERROR, too large
\r
6 layout(local_size_x = 2) in;
\r
8 const int total = gl_MaxComputeWorkGroupCount.y
\r
9 + gl_MaxComputeUniformComponents
\r
10 + gl_MaxComputeTextureImageUnits
\r
11 + gl_MaxComputeImageUniforms
\r
12 + gl_MaxComputeAtomicCounters
\r
13 + gl_MaxComputeAtomicCounterBuffers;
\r
15 buffer ShaderStorageBlock
\r
21 buffer InvalidShaderStorageBlock
\r
31 memoryBarrierAtomicCounter();
\r
32 memoryBarrierBuffer();
\r
33 memoryBarrierShared();
\r
34 memoryBarrierImage();
\r
35 groupMemoryBarrier();
\r
36 value = int(values[gl_LocalInvocationIndex]);
\r
43 layout(location = 2) in vec3 v3; // ERROR
\r
44 in float f; // ERROR
\r
45 out float fo; // ERROR
\r
48 layout(location = 2) shared vec4 sl; // ERROR
\r
49 shared float fs = 4.2; // ERROR
\r
51 layout(local_size_y = 1) in;
\r
52 layout(local_size_y = 2) in; // ERROR, changing
\r
53 layout(local_size_y = 1) in;
\r
54 layout(local_size_x = 2, local_size_y = 3, local_size_z = 4) out; // ERROR
\r
56 int arrX[gl_WorkGroupSize.x];
\r
57 int arrY[gl_WorkGroupSize.y];
\r
58 int arrZ[gl_WorkGroupSize.z];
\r
60 readonly buffer roblock
\r
68 ro.values[2] = 4.7; // ERROR, readonly
\r
73 uniform double roll;
\r
74 uniform writeonly image2D destTex;
\r
76 ivec2 storePos = ivec2(gl_GlobalInvocationID.xy);
\r
77 double localCoef = length(vec2(ivec2(gl_LocalInvocationID.xy)-8)/8.0);
\r
78 dvec4 aa = dvec4(0.4, 0.2, 0.3, 0.4);
\r
79 double globalCoef = 1.0;
\r
80 int i = globalCoef; // ERROR, can't convert from double to int
\r