James Price 3b671cb377 wgsl: Separate struct members with commas
Use of semicolons is still supported, but deprecated.

Also updates the parsing methods for structures to better match the
WGSL grammar.

Bug: tint:1475
Change-Id: I7675ba42c13f91080b0ac173c352e0092021f80b
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/84380
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: James Price <jrprice@google.com>
2022-03-28 14:31:22 +00:00

31 lines
655 B
WebGPU Shading Language

struct Inner {
a : vec3<i32>,
b : i32,
c : vec3<u32>,
d : u32,
e : vec3<f32>,
f : f32,
g : mat2x3<f32>,
h : mat3x2<f32>,
i : array<vec4<i32>, 4>,
};
struct S {
arr : array<Inner>,
};
@binding(0) @group(0) var<storage, read_write> s : S;
@stage(compute) @workgroup_size(1)
fn main(@builtin(local_invocation_index) idx : u32) {
s.arr[idx].a = vec3<i32>();
s.arr[idx].b = i32();
s.arr[idx].c = vec3<u32>();
s.arr[idx].d = u32();
s.arr[idx].e = vec3<f32>();
s.arr[idx].f = f32();
s.arr[idx].g = mat2x3<f32>();
s.arr[idx].h = mat3x2<f32>();
s.arr[idx].i = array<vec4<i32>, 4>();
}