30 lines
516 B
WebGPU Shading Language
30 lines
516 B
WebGPU Shading Language
|
[[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());
|
||
|
}
|