#version 450 #extension GL_EXT_shader_atomic_float : require layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; layout(set = 0, binding = 1, std430) buffer SSBO { float v; } _18; layout(set = 0, binding = 0, r32f) uniform image2D uImage; shared float shared_v; void main() { float _15 = atomicAdd(shared_v, 2.0); float value = _15; float _24 = atomicAdd(_18.v, value); float _39 = imageAtomicAdd(uImage, ivec2(gl_GlobalInvocationID.xy), value); float _45 = imageAtomicExchange(uImage, ivec2(gl_GlobalInvocationID.xy), value); value = _45; }