ext_gpu_shader4: add compiler tests for everything
[piglit.git] / tests / spec / arb_compute_shader / execution / shared-atomics.shader_test
blob65f150aaf087d278741495248b3e4c238b03b5db
1 # Verify simple usage of atomics and shared variables
3 [require]
4 GL >= 3.3
5 GLSL >= 3.30
6 GL_ARB_compute_shader
7 GL_ARB_shader_atomic_counters
9 [compute shader]
10 #version 330
11 #extension GL_ARB_compute_shader: enable
12 #extension GL_ARB_shader_atomic_counters: enable
14 layout(local_size_x = 2, local_size_y = 3) in;
16 shared uint value;
17 layout(binding = 0) uniform atomic_uint pass;
18 const uint size = gl_WorkGroupSize.x * gl_WorkGroupSize.y * gl_WorkGroupSize.z;
20 void main()
22    if (gl_LocalInvocationIndex == 0u)
23       value = 0u;
24    barrier();
25    atomicAdd(value, gl_LocalInvocationIndex);
26    barrier();
27    if (gl_LocalInvocationIndex == 0u) {
28       if (value == size * (size - 1u) / 2u)
29          atomicCounterIncrement(pass);
30    }
33 [test]
34 atomic counters 1
35 compute 2 3 4
36 probe atomic counter 0 == 24