blob: 01038aa2a7bf4a669897ef669fcf453b77c6f423 [file] [log] [blame]
Ben Claytonbd8449f2022-06-25 00:55:59 +00001groupshared uint wg[3][2][1];
2
Ben Clayton9dc42ad2024-02-05 18:01:33 +00003void tint_zero_workgroup_memory(uint local_idx) {
Ben Claytonbd8449f2022-06-25 00:55:59 +00004 {
Ben Clayton9dc42ad2024-02-05 18:01:33 +00005 for(uint idx = local_idx; (idx < 6u); idx = (idx + 1u)) {
Antonio Maiorano144ebed2024-01-30 16:30:15 +00006 uint i = (idx / 2u);
7 uint i_1 = (idx % 2u);
8 uint i_2 = (idx % 1u);
Ben Claytonbd8449f2022-06-25 00:55:59 +00009 uint atomic_result = 0u;
10 InterlockedExchange(wg[i][i_1][i_2], 0u, atomic_result);
11 }
12 }
13 GroupMemoryBarrierWithGroupSync();
Ben Clayton9dc42ad2024-02-05 18:01:33 +000014}
15
16struct tint_symbol_1 {
17 uint local_invocation_index : SV_GroupIndex;
18};
19
20void compute_main_inner(uint local_invocation_index) {
21 tint_zero_workgroup_memory(local_invocation_index);
Ben Claytonbd8449f2022-06-25 00:55:59 +000022 uint atomic_result_1 = 0u;
23 InterlockedExchange(wg[2][1][0], 1u, atomic_result_1);
24}
25
26[numthreads(1, 1, 1)]
27void compute_main(tint_symbol_1 tint_symbol) {
28 compute_main_inner(tint_symbol.local_invocation_index);
29 return;
30}