#version 420

layout(local_size_x = 2) in;  // ERROR, no compute

#extension GL_ARB_compute_shader : enable

layout(local_size_x = 2, local_size_y = 4, local_size_z = 6) in;

shared vec3 sfoo;

void main()
{
    sfoo = vec3(gl_WorkGroupSize.x, gl_WorkGroupSize.y, gl_WorkGroupSize.z);
    sfoo += gl_WorkGroupSize + gl_NumWorkGroups + gl_WorkGroupID + gl_LocalInvocationID + gl_GlobalInvocationID;
    sfoo *= gl_LocalInvocationIndex;
    sfoo += gl_MaxComputeWorkGroupCount + gl_MaxComputeWorkGroupSize;
    sfoo *= gl_MaxComputeUniformComponents +
            gl_MaxComputeTextureImageUnits +
            gl_MaxComputeImageUniforms +
            gl_MaxComputeAtomicCounters +
            gl_MaxComputeAtomicCounterBuffers;

    barrier();
    memoryBarrier();
    memoryBarrierAtomicCounter();
    memoryBarrierBuffer();
    memoryBarrierImage();
    memoryBarrierShared();
    groupMemoryBarrier();
}