| struct Uniforms { | |
| i : u32; | |
| j : u32; | |
| } | |
| struct InnerS { | |
| v : i32; | |
| } | |
| struct S1 { | |
| a2 : array<InnerS, 8>; | |
| } | |
| struct OuterS { | |
| a1 : array<S1, 8>; | |
| } | |
| var<private> nextIndex : u32; | |
| fn getNextIndex() -> u32 { | |
| nextIndex = (nextIndex + 1u); | |
| return nextIndex; | |
| } | |
| @group(1) @binding(4) var<uniform> uniforms : Uniforms; | |
| @stage(compute) @workgroup_size(1) | |
| fn main() { | |
| var v : InnerS; | |
| var s : OuterS; | |
| s.a1[getNextIndex()].a2[uniforms.j] = v; | |
| } |