1*c8dee2aaSAndroid Build Coastguard Workerlayout(local_size_x = 64) in; 2*c8dee2aaSAndroid Build Coastguard Worker 3*c8dee2aaSAndroid Build Coastguard Workerstruct S { 4*c8dee2aaSAndroid Build Coastguard Worker atomicUint structMemberAtomic; // valid 5*c8dee2aaSAndroid Build Coastguard Worker atomicUint structMemberAtomicArray[2]; // valid 6*c8dee2aaSAndroid Build Coastguard Worker}; 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Workerstruct NestedS { 9*c8dee2aaSAndroid Build Coastguard Worker S nestedStructWithAtomicMember; // valid 10*c8dee2aaSAndroid Build Coastguard Worker}; 11*c8dee2aaSAndroid Build Coastguard Worker 12*c8dee2aaSAndroid Build Coastguard Workerlayout(metal, binding = 0) buffer ssbo { 13*c8dee2aaSAndroid Build Coastguard Worker atomicUint ssboAtomic; // valid 14*c8dee2aaSAndroid Build Coastguard Worker atomicUint ssboAtomicArray[2]; // valid 15*c8dee2aaSAndroid Build Coastguard Worker S ssboStructWithAtomicMember; // valid 16*c8dee2aaSAndroid Build Coastguard Worker S ssboStructWithAtomicMemberArray[2]; // valid 17*c8dee2aaSAndroid Build Coastguard Worker NestedS ssboNestedStructWithAtomicMember; // valid 18*c8dee2aaSAndroid Build Coastguard Worker}; 19*c8dee2aaSAndroid Build Coastguard Worker 20*c8dee2aaSAndroid Build Coastguard Workerworkgroup atomicUint wgAtomic; // valid 21*c8dee2aaSAndroid Build Coastguard Workerworkgroup atomicUint wgAtomicArray[2]; // valid 22*c8dee2aaSAndroid Build Coastguard Workerworkgroup NestedS wgNestedStructWithAtomicMember; // valid; 23*c8dee2aaSAndroid Build Coastguard Worker 24*c8dee2aaSAndroid Build Coastguard Workervoid main() { 25*c8dee2aaSAndroid Build Coastguard Worker // Do something with each workgroup atomic to prevent them from getting eliminated as 26*c8dee2aaSAndroid Build Coastguard Worker // dead globals. 27*c8dee2aaSAndroid Build Coastguard Worker atomicAdd(wgAtomicArray[1], atomicLoad(wgAtomic)); 28*c8dee2aaSAndroid Build Coastguard Worker atomicAdd(wgAtomicArray[0], atomicLoad(wgAtomicArray[1])); 29*c8dee2aaSAndroid Build Coastguard Worker atomicAdd(wgNestedStructWithAtomicMember.nestedStructWithAtomicMember.structMemberAtomic, 1); 30*c8dee2aaSAndroid Build Coastguard Worker} 31