#version 450 /* built in: in uvec3 gl_NumWorkGroups; in uvec3 gl_WorkGroupID; in uvec3 gl_LocalInvocationID; in uvec3 gl_GlobalInvocationID; in uint gl_LocalInvocationIndex; */ layout(local_size_x_id = 0, local_size_y = 1, local_size_z = 1) in; layout(push_constant) uniform PushStruct { uint size; uint offset; } p; layout(binding = 0) buffer inoutBufer { uint v[]; }; void main() { uint gIDx = gl_GlobalInvocationID.x; if (gIDx >= p.size) { return; } v[gIDx] = v[gIDx] + v[gIDx + p.offset]; }