3 layout(local_size_x_id = 18, local_size_z_id = 19) in;
5 layout(local_size_x = 2) in;
6 layout(local_size_y = 5) in;
7 layout(local_size_z = 7) in;
9 const int total = gl_MaxComputeWorkGroupCount.x
10 + gl_MaxComputeWorkGroupCount.y
11 + gl_MaxComputeWorkGroupCount.z
12 + gl_MaxComputeUniformComponents
13 + gl_MaxComputeTextureImageUnits;
17 int arrX[gl_WorkGroupSize.x];
18 int arrY[gl_WorkGroupSize.y];
19 int arrZ[gl_WorkGroupSize.z];
21 layout(binding = 0, set = 0) buffer bName {
31 bInst.data[bInst.size / 2] *= vec4(7.0);
35 memoryBarrierShared();
36 memoryBarrierBuffer();
38 s[3] = vec4(0, arrX[0], arrY[0], arrZ[0]);
39 bInst.count = gl_NumWorkGroups + gl_WorkGroupSize + gl_WorkGroupID + gl_LocalInvocationID +
40 gl_GlobalInvocationID * gl_LocalInvocationIndex;
42 atomicAdd(bInst.size, 2);
43 atomicMin(bInst.size, 2);
44 atomicMax(bInst.size, 2);
45 atomicAnd(bInst.size, 2);
46 atomicOr(bInst.size, 2);
47 atomicXor(bInst.size, 2);
48 atomicExchange(bInst.size, 2);
49 atomicCompSwap(bInst.size, 5, 2);