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; | |
} |