1617a3babSopenharmony_ci#version 450 2617a3babSopenharmony_ci 3617a3babSopenharmony_ci 4617a3babSopenharmony_ci 5617a3babSopenharmony_cilayout(binding = 0) uniform atomic_uint counter; 6617a3babSopenharmony_ci 7617a3babSopenharmony_cilayout(binding = 0, offset = 4) uniform atomic_uint countArr[4]; 8617a3babSopenharmony_cishared uint value; 9617a3babSopenharmony_ci 10617a3babSopenharmony_ciint arrX[gl_WorkGroupSize.x]; 11617a3babSopenharmony_ciint arrY[gl_WorkGroupSize.y]; 12617a3babSopenharmony_ciint arrZ[gl_WorkGroupSize.z]; 13617a3babSopenharmony_ci 14617a3babSopenharmony_ciuint func(atomic_uint c) 15617a3babSopenharmony_ci{ 16617a3babSopenharmony_ci return atomicCounterIncrement(c); 17617a3babSopenharmony_ci} 18617a3babSopenharmony_ci 19617a3babSopenharmony_civoid main() 20617a3babSopenharmony_ci{ 21617a3babSopenharmony_ci memoryBarrierAtomicCounter(); 22617a3babSopenharmony_ci func(counter); 23617a3babSopenharmony_ci uint val = atomicCounter(countArr[2]); 24617a3babSopenharmony_ci atomicCounterDecrement(counter); 25617a3babSopenharmony_ci atomicCounterIncrement(counter); 26617a3babSopenharmony_ci} 27617a3babSopenharmony_ci 28617a3babSopenharmony_cishared int atomi; 29617a3babSopenharmony_cishared uint atomu; 30617a3babSopenharmony_ci 31617a3babSopenharmony_cilayout (std140, binding = 0) restrict buffer dataSSB 32617a3babSopenharmony_ci{ 33617a3babSopenharmony_ci float f; 34617a3babSopenharmony_ci ivec4 n_frames_rendered; 35617a3babSopenharmony_ci} result; 36617a3babSopenharmony_ci 37617a3babSopenharmony_civoid atoms() 38617a3babSopenharmony_ci{ 39617a3babSopenharmony_ci int origi = atomicAdd(atomi, 3); 40617a3babSopenharmony_ci uint origu = atomicAnd(atomu, value); 41617a3babSopenharmony_ci origu = atomicOr(atomu, 7u); 42617a3babSopenharmony_ci origu = atomicXor(atomu, 7u); 43617a3babSopenharmony_ci origu = atomicMin(atomu, value); 44617a3babSopenharmony_ci origi = atomicMax(atomi, 7); 45617a3babSopenharmony_ci origi = atomicExchange(atomi, origi); 46617a3babSopenharmony_ci origu = atomicCompSwap(atomu, 10u, value); 47617a3babSopenharmony_ci atomicAdd(result.n_frames_rendered.z, 1); 48617a3babSopenharmony_ci} 49