dan sinclair 3abad2c125 When emitting a MSL struct initializer emit the struct name.
This CL changes the MSL emission for struct initializers to emit the
struct name first.

`const a = {.f=float3(1)}` becomes `const a = Normals{.f=float3(1)}`.

This fixes an issues where the initialization happens inside an array
which the downstream compiler rejected without the explicit struct
naming.

Bug: tint:1641
Change-Id: I948b9ca94f4b89eac6d5bbbaa615b3d71d50c737
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/98760
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
2022-08-11 02:28:01 +00:00

12 lines
196 B
WebGPU Shading Language

struct Normals {
f : vec3<f32>,
}
const faceNormals = array<Normals, 1>(
Normals(vec3(0, 0, 1)),
);
@vertex
fn main() -> @builtin(position) vec4<f32> {
return vec4(faceNormals[0].f, 1.);
}