[[block]] | |
struct UBO { | |
dynamic_idx : i32; | |
}; | |
[[group(0), binding(0)]] var<uniform> ubo : UBO; | |
struct S { | |
data : array<i32, 64>; | |
}; | |
[[block]] | |
struct Result { | |
out : i32; | |
}; | |
[[group(0), binding(1)]] var<storage, read_write> result : Result; | |
var<private> s : S; | |
fn x(p : ptr<private, S>) { | |
(*(p)).data[ubo.dynamic_idx] = 1; | |
} | |
[[stage(compute), workgroup_size(1)]] | |
fn f() { | |
x(&(s)); | |
result.out = s.data[3]; | |
} |