xref: /aosp_15_r20/external/skia/resources/sksl/errors/InvalidAtomicDeclarations.compute (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
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