1*c8dee2aaSAndroid Build Coastguard Workerworkgroup atomicUint wgAtomic; // valid 2*c8dee2aaSAndroid Build Coastguard Workerworkgroup atomic_uint wgAtomicArray[2]; // valid 3*c8dee2aaSAndroid Build Coastguard Worker 4*c8dee2aaSAndroid Build Coastguard Workeratomic_uint globalAtomic; // invalid 5*c8dee2aaSAndroid Build Coastguard WorkeratomicUint globalAtomicArray[2]; // invalid 6*c8dee2aaSAndroid Build Coastguard Worker 7*c8dee2aaSAndroid Build Coastguard Workerstruct S { 8*c8dee2aaSAndroid Build Coastguard Worker atomicUint structMemberAtomic; // valid 9*c8dee2aaSAndroid Build Coastguard Worker atomic_uint structMemberAtomicArray[2]; // valid 10*c8dee2aaSAndroid Build Coastguard Worker}; 11*c8dee2aaSAndroid Build Coastguard Worker 12*c8dee2aaSAndroid Build Coastguard Workerstruct NestedS { 13*c8dee2aaSAndroid Build Coastguard Worker S nestedStructWithAtomicMember; // valid 14*c8dee2aaSAndroid Build Coastguard Worker}; 15*c8dee2aaSAndroid Build Coastguard Worker 16*c8dee2aaSAndroid Build Coastguard Workerworkgroup S wgStructWithAtomicMember; // valid 17*c8dee2aaSAndroid Build Coastguard Workerworkgroup S wgStructWithAtomicMemberArray[2]; // valid 18*c8dee2aaSAndroid Build Coastguard Workerworkgroup NestedS wgStructWithNestedAtomicMember; // valid 19*c8dee2aaSAndroid Build Coastguard Worker 20*c8dee2aaSAndroid Build Coastguard WorkerS globalStructWithAtomicMember; // invalid 21*c8dee2aaSAndroid Build Coastguard WorkerS globalStructWithAtomicMemberArray[2]; // invalid 22*c8dee2aaSAndroid Build Coastguard WorkerNestedS globalStructWithNestedAtomicMember; // invalid 23*c8dee2aaSAndroid Build Coastguard Worker 24*c8dee2aaSAndroid Build Coastguard Workerlayout(metal, binding = 0) buffer ssbo { 25*c8dee2aaSAndroid Build Coastguard Worker atomic_uint ssboAtomic; // valid 26*c8dee2aaSAndroid Build Coastguard Worker atomicUint ssboAtomicArray[2]; // valid 27*c8dee2aaSAndroid Build Coastguard Worker S ssboStructWithAtomicMember; // valid 28*c8dee2aaSAndroid Build Coastguard Worker S ssboStructWithAtomicMemberArray[2]; // valid 29*c8dee2aaSAndroid Build Coastguard Worker}; 30*c8dee2aaSAndroid Build Coastguard Worker 31*c8dee2aaSAndroid Build Coastguard Workerlayout(metal, binding = 1) uniform ubo1 { 32*c8dee2aaSAndroid Build Coastguard Worker atomicUint uboAtomic; // invalid 33*c8dee2aaSAndroid Build Coastguard Worker}; 34*c8dee2aaSAndroid Build Coastguard Workerlayout(metal, binding = 2) uniform ubo2 { 35*c8dee2aaSAndroid Build Coastguard Worker atomic_uint uboAtomicArray[2]; // invalid 36*c8dee2aaSAndroid Build Coastguard Worker}; 37*c8dee2aaSAndroid Build Coastguard Workerlayout(metal, binding = 3) uniform ubo3 { 38*c8dee2aaSAndroid Build Coastguard Worker S uboStructWithAtomicMember; // invalid 39*c8dee2aaSAndroid Build Coastguard Worker}; 40*c8dee2aaSAndroid Build Coastguard Workerlayout(metal, binding = 4) uniform ubo4 { 41*c8dee2aaSAndroid Build Coastguard Worker S uboStructWithAtomicMemberArray[2]; // invalid 42*c8dee2aaSAndroid Build Coastguard Worker}; 43*c8dee2aaSAndroid Build Coastguard Workerlayout(metal, binding = 5) uniform ubo5 { 44*c8dee2aaSAndroid Build Coastguard Worker NestedS uboStructWithNestedAtomicMember; // invalid 45*c8dee2aaSAndroid Build Coastguard Worker}; 46*c8dee2aaSAndroid Build Coastguard Worker 47*c8dee2aaSAndroid Build Coastguard Workerlayout(metal, binding = 6) readonly buffer roSsbo1 { 48*c8dee2aaSAndroid Build Coastguard Worker atomic_uint readonlySsboAtomic; // invalid 49*c8dee2aaSAndroid Build Coastguard Worker}; 50*c8dee2aaSAndroid Build Coastguard Workerlayout(metal, binding = 7) readonly buffer roSsbo2 { 51*c8dee2aaSAndroid Build Coastguard Worker atomicUint readonlySsboAtomicArray[2]; // invalid 52*c8dee2aaSAndroid Build Coastguard Worker}; 53*c8dee2aaSAndroid Build Coastguard Workerlayout(metal, binding = 8) readonly buffer roSsbo3 { 54*c8dee2aaSAndroid Build Coastguard Worker S readonlySsboStructWithAtomicMember; // invalid 55*c8dee2aaSAndroid Build Coastguard Worker}; 56*c8dee2aaSAndroid Build Coastguard Workerlayout(metal, binding = 9) readonly buffer roSsbo4 { 57*c8dee2aaSAndroid Build Coastguard Worker S readonlySsboStructWithAtomicMemberArray[2]; // invalid 58*c8dee2aaSAndroid Build Coastguard Worker}; 59*c8dee2aaSAndroid Build Coastguard Workerlayout(metal, binding = 10) readonly buffer roSsbo5 { 60*c8dee2aaSAndroid Build Coastguard Worker NestedS readonlySsboStructWithNestedAtomicMember; // invalid 61*c8dee2aaSAndroid Build Coastguard Worker}; 62*c8dee2aaSAndroid Build Coastguard Worker 63*c8dee2aaSAndroid Build Coastguard Workervoid main() { 64*c8dee2aaSAndroid Build Coastguard Worker atomicUint localAtomic; // invalid 65*c8dee2aaSAndroid Build Coastguard Worker atomic_uint localAtomicArray[2]; // invalid 66*c8dee2aaSAndroid Build Coastguard Worker S localStructWithAtomicMember; // invalid 67*c8dee2aaSAndroid Build Coastguard Worker S localStructWithAtomicMemberArray[2]; // invalid 68*c8dee2aaSAndroid Build Coastguard Worker} 69*c8dee2aaSAndroid Build Coastguard Worker 70*c8dee2aaSAndroid Build Coastguard Worker/*%%* 71*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 72*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 73*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 74*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 75*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 76*c8dee2aaSAndroid Build Coastguard Workervariables of type 'ubo1' may not be uniform 77*c8dee2aaSAndroid Build Coastguard Workercaused by: 78*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 79*c8dee2aaSAndroid Build Coastguard Workervariables of type 'ubo2' may not be uniform 80*c8dee2aaSAndroid Build Coastguard Workercaused by: 81*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 82*c8dee2aaSAndroid Build Coastguard Workervariables of type 'ubo3' may not be uniform 83*c8dee2aaSAndroid Build Coastguard Workercaused by: 84*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 85*c8dee2aaSAndroid Build Coastguard Workervariables of type 'ubo4' may not be uniform 86*c8dee2aaSAndroid Build Coastguard Workercaused by: 87*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 88*c8dee2aaSAndroid Build Coastguard Workervariables of type 'ubo5' may not be uniform 89*c8dee2aaSAndroid Build Coastguard Workercaused by: 90*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 91*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 92*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 93*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 94*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 95*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 96*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 97*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 98*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 99*c8dee2aaSAndroid Build Coastguard Workeratomics are only permitted in workgroup variables and writable storage blocks 100*c8dee2aaSAndroid Build Coastguard Worker*%%*/ 101