GLSL per-pixel spinlock using imageAtomicCompSwap
问题 OpenGL red book version 9 (OpenGL 4.5) example 11.13 is Simple Per-Pixel Mutex . It uses imageAtomicCompSwap in a do {} while() loop to take a per-pixel lock to prevent simultaneous access to a shared resouce between pixel shader invocations corresponding to the same pixel coordinate. layout (binding = 0, r32ui) uniform volatile coherent uimage2D lock_image; void main(void) { ivec2 pos = ivec2(gl_FragCoord.xy); // spinlock - acquire uint lock_available; do { lock_available =