Ben Clayton 657e61d43d tint: Add and use new Std140 transform
This transform breaks up matNx2<f32> matrices used in uniform buffers
into column vectors, which fixes std140 layout rules.

Used by the SPIR-V and GLSL backends.

Re-enable tests that were disabled for these cases.

Bug: tint:1632
Change-Id: I596d016582b4189a0b413d762b3e7eabd3504b22
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/100907
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
2022-09-01 22:12:19 +00:00

17 lines
265 B
WebGPU Shading Language

struct S {
before : i32,
m : mat4x2<f32>,
after : i32,
}
@group(0) @binding(0) var<uniform> u : array<S, 4>;
var<private> p : array<S, 4>;
@compute @workgroup_size(1)
fn f() {
p = u;
p[1] = u[2];
p[3].m = u[2].m;
p[1].m[0] = u[0].m[1].yx;
}