#[compute] #version 450 layout(local_size_x = 32, local_size_y = 32, local_size_z = 1) in; layout(set = 0, binding = 0, std430) restrict buffer outputBuffer { uint sum_value; } out_data; layout(set = 0, binding = 1, r8ui) uniform readonly uimage2D inputTexture; void main() { ivec2 uv = ivec2(gl_GlobalInvocationID.xy); uint value = imageLoad(inputTexture, uv).r + 1; out_data.sum_value = atomicAdd(out_data.sum_value, value); //out_data.sum_value += value; }