45 lines
723 B
WebGPU Shading Language
45 lines
723 B
WebGPU Shading Language
struct A {
|
|
u: u32,
|
|
v: u32,
|
|
w: vec2<u32>,
|
|
@size(16) @align(8)
|
|
x: u32,
|
|
xx: u32,
|
|
}
|
|
|
|
struct B {
|
|
a: vec2<u32>,
|
|
b: vec3<u32>,
|
|
c: u32,
|
|
d: u32,
|
|
@align(16)
|
|
e: A,
|
|
f: vec3<u32>,
|
|
g: array<A, 3>,
|
|
h: i32,
|
|
@align(32)
|
|
i: array<A>,
|
|
}
|
|
|
|
@group(0) @binding(0)
|
|
var<storage> in: B;
|
|
|
|
@group(0) @binding(1)
|
|
var<storage, read_write> out: B;
|
|
|
|
@compute @workgroup_size(1, 1, 1)
|
|
fn main() {
|
|
out.a = in.a;
|
|
out.b = in.b;
|
|
out.c = in.c;
|
|
out.d = in.d;
|
|
out.e = in.e;
|
|
out.f = in.f;
|
|
out.g[0] = in.g[0];
|
|
out.g[1] = in.g[1];
|
|
out.g[2] = in.g[2];
|
|
out.h = in.h;
|
|
for (var i = 0u; i < arrayLength(&in.i); i = i + 1u) {
|
|
out.i[i] = in.i[i];
|
|
}
|
|
} |