[[block]] struct vertexUniformBuffer1 { transform1 : mat2x2; }; [[block]] struct vertexUniformBuffer2 { transform2 : mat2x2; }; [[group(0), binding(0)]] var x_20 : vertexUniformBuffer1; [[group(1), binding(0)]] var x_26 : vertexUniformBuffer2; [[stage(vertex)]] fn main([[builtin(vertex_index)]] gl_VertexIndex : i32) -> [[builtin(position)]] vec4 { var indexable : array, 3>; let x_23 : mat2x2 = x_20.transform1; let x_28 : mat2x2 = x_26.transform2; let x_46 : i32 = gl_VertexIndex; indexable = array, 3>(vec2(-1.0, 1.0), vec2(1.0, 1.0), vec2(-1.0, -1.0)); let x_51 : vec2 = indexable[x_46]; let x_52 : vec2 = (mat2x2((x_23[0u] + x_28[0u]), (x_23[1u] + x_28[1u])) * x_51); return vec4(x_52.x, x_52.y, 0.0, 1.0); }