| #version 450 |
| #extension GL_KHR_memory_scope_semantics : require |
| #extension GL_EXT_split_barrier : require |
| |
| shared uint value; |
| layout (binding = 0) buffer BufferU { coherent uint x; } bufferu; |
| layout(binding = 1, r32ui) coherent uniform uimage2D imageu; |
| |
| void main() |
| { |
| uint origu; |
| |
| // Volatile must not be used with memoryBarrier or controlBarrier |
| controlBarrierArrive(gl_ScopeWorkgroup, gl_ScopeWorkgroup, gl_StorageSemanticsShared, gl_SemanticsRelease); |
| controlBarrierWait(gl_ScopeWorkgroup, gl_ScopeWorkgroup, gl_StorageSemanticsShared, gl_SemanticsRelaxed); |
| } |