3 layout(binding = 0) uniform atomic_uint counter;
4 layout(binding = 0, offset = 9) uniform atomic_uint counter;
6 uint func(atomic_uint c)
8 return atomicCounterIncrement(c);
11 uint func2(out atomic_uint c) // ERROR
13 return counter; // ERROR, type mismatch
14 return atomicCounter(counter);
19 atomic_uint non_uniform_counter; // ERROR
20 uint val = atomicCounter(counter);
21 atomicCounterDecrement(counter);
24 layout(binding = 1, offset = 3) uniform atomic_uint countArr[4];
\r
29 counter + counter; // ERROR
\r
32 a[counter]; // ERROR
\r
35 counter = 4; // ERROR
\r
38 in atomic_uint acin; // ERROR
\r
39 atomic_uint acg; // ERROR
\r
40 uniform atomic_uint;
\r
41 uniform atomic_uint aNoBind; // ERROR, no binding
\r
42 layout(binding=0, offset=32) uniform atomic_uint aOffset;
\r
43 layout(binding=0, offset=4) uniform atomic_uint;
\r
44 layout(binding=0) uniform atomic_uint bar3; // offset is 4
\r
45 layout(binding=0) uniform atomic_uint ac[2]; // offset = 8
\r
46 layout(binding=0) uniform atomic_uint ad; // offset = 20
\r
47 layout(offset=8) uniform atomic_uint bar4; // ERROR, no binding
\r
48 layout(binding = 0, offset = 12) uniform atomic_uint overlap; // ERROR, overlapping offsets
\r
49 layout(binding = 20) uniform atomic_uint bigBind; // ERROR, binding too big
\r