[[block]] | |
struct Constants { | |
zero : u32; | |
}; | |
[[group(1), binding(0)]] var<uniform> constants : Constants; | |
[[block]] | |
struct Result { | |
value : u32; | |
}; | |
[[group(1), binding(1)]] var<storage, write> result : Result; | |
[[block]] | |
struct TestData { | |
data : array<atomic<i32>, 3>; | |
}; | |
[[group(0), binding(0)]] var<storage, read_write> s : TestData; | |
fn runTest() -> i32 { | |
return atomicLoad(&(s.data[(0u + u32(constants.zero))])); | |
} | |
[[stage(compute), workgroup_size(1)]] | |
fn main() { | |
result.value = u32(runTest()); | |
} |