1#version 450 core 2#extension GL_ARB_shader_atomic_counters: enable 3#extension GL_ARB_shader_atomic_counter_ops:enable 4 5layout(binding = 0) uniform atomic_uint counter; 6 7out highp vec4 vsColor; 8 9void main(){ 10 vec4 outColor = vec4(1.0); 11 uint ret; 12 13 ret = atomicCounterAddARB(counter, 4u); 14 ret = atomicCounterSubtractARB(counter, 4u); 15 ret = atomicCounterMinARB(counter, 4u); 16 ret = atomicCounterMaxARB(counter, 4u); 17 ret = atomicCounterAndARB(counter, 4u); 18 ret = atomicCounterOrARB(counter, 4u); 19 ret = atomicCounterXorARB(counter, 4u); 20 ret = atomicCounterExchangeARB(counter, 4u); 21 ret = atomicCounterCompSwapARB(counter, 4u, 4u); 22 23 uint after = atomicCounter(counter); 24 if (after == ret) 25 outColor = vec4(0.0); 26 27 vsColor = outColor; 28}