12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #version 450
- layout(binding = 0) uniform atomic_uint counter;
- layout(binding = 0, offset = 4) uniform atomic_uint countArr[4];
- shared uint value;
- int arrX[gl_WorkGroupSize.x];
- int arrY[gl_WorkGroupSize.y];
- int arrZ[gl_WorkGroupSize.z];
- uint func(atomic_uint c)
- {
- return atomicCounterIncrement(c);
- }
- void main()
- {
- memoryBarrierAtomicCounter();
- func(counter);
- uint val = atomicCounter(countArr[2]);
- atomicCounterDecrement(counter);
- atomicCounterIncrement(counter);
- }
- shared int atomi;
- shared uint atomu;
- layout (std140, binding = 0) restrict buffer dataSSB
- {
- float f;
- ivec4 n_frames_rendered;
- } result;
- void atoms()
- {
- int origi = atomicAdd(atomi, 3);
- uint origu = atomicAnd(atomu, value);
- origu = atomicOr(atomu, 7u);
- origu = atomicXor(atomu, 7u);
- origu = atomicMin(atomu, value);
- origi = atomicMax(atomi, 7);
- origi = atomicExchange(atomi, origi);
- origu = atomicCompSwap(atomu, 10u, value);
- atomicAdd(result.n_frames_rendered.z, 1);
- }
|