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

35 lines
708 B
WebGPU Shading Language

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