dawn-cmake/test/tint/buffer/uniform/std140/mat2x2/to_builtin.wgsl.expected.glsl
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

39 lines
552 B
GLSL

#version 310 es
struct S {
int before;
mat2 m;
int after;
};
struct S_std140 {
int before;
vec2 m_0;
vec2 m_1;
int after;
};
struct u_block {
S_std140 inner[4];
};
layout(binding = 0) uniform u_block_1 {
S_std140 inner[4];
} u;
mat2 load_u_2_m() {
return mat2(u.inner[2u].m_0, u.inner[2u].m_1);
}
void f() {
mat2 t = transpose(load_u_2_m());
float l = length(u.inner[0u].m_1.yx);
float a = abs(u.inner[0u].m_1.yx[0u]);
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
void main() {
f();
return;
}