| struct S { | |
| a : array<vec4<i32>, 4> | |
| } | |
| @group(0) @binding(0) var<storage, read_write> buffer : array<S>; | |
| var<private> v : u32; | |
| fn idx1() -> i32 { | |
| v++; | |
| return 1; | |
| } | |
| fn idx2() -> i32 { | |
| v++; | |
| return 2; | |
| } | |
| fn idx3() -> i32 { | |
| v++; | |
| return 3; | |
| } | |
| fn idx4() -> i32 { | |
| v++; | |
| return 4; | |
| } | |
| fn idx5() -> i32 { | |
| v++; | |
| return 0; | |
| } | |
| fn idx6() -> i32 { | |
| v++; | |
| return 2; | |
| } | |
| fn main() { | |
| for (buffer[idx1()].a[idx2()][idx3()]++; | |
| v < 10u; | |
| buffer[idx4()].a[idx5()][idx6()]++) { | |
| } | |
| } |