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

23 lines
344 B
WebGPU Shading Language

struct S {
before : i32,
m : mat4x2<f32>,
after : i32,
}
@group(0) @binding(0) var<uniform> u : array<S, 4>;
fn a(a : array<S, 4>) {}
fn b(s : S) {}
fn c(m : mat4x2<f32>) {}
fn d(v : vec2<f32>) {}
fn e(f : f32) {}
@compute @workgroup_size(1)
fn f() {
a(u);
b(u[2]);
c(u[2].m);
d(u[0].m[1].yx);
e(u[0].m[1].yx.x);
}