#version 310 es

layout(binding = 0, std140) uniform u_block_std140_ubo {
  vec2 inner_0;
  vec2 inner_1;
} u;

layout(binding = 1, std430) buffer u_block_ssbo {
  mat2 inner;
} s;

mat2 load_u_inner() {
  return mat2(u.inner_0, u.inner_1);
}

void tint_symbol() {
  mat2 x = load_u_inner();
  s.inner = x;
}

layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
void main() {
  tint_symbol();
  return;
}
