struct Foo { column_major float3x4 MVP0; column_major float3x4 MVP1; }; uniform float4 UBO[8]; static float4 v0; static float4 v1; static float3 V0; static float3 V1; struct SPIRV_Cross_Input { float4 v0 : TEXCOORD0; float4 v1 : TEXCOORD1; }; struct SPIRV_Cross_Output { float3 V0 : TEXCOORD0; float3 V1 : TEXCOORD1; }; void vert_main() { Foo _19 = {transpose(float4x3(UBO[0].xyz, UBO[1].xyz, UBO[2].xyz, UBO[3].xyz)), transpose(float4x3(UBO[4].xyz, UBO[5].xyz, UBO[6].xyz, UBO[7].xyz))}; Foo _20 = _19; V0 = mul(_20.MVP0, v0); V1 = mul(_20.MVP1, v1); } SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input) { v0 = stage_input.v0; v1 = stage_input.v1; vert_main(); SPIRV_Cross_Output stage_output; stage_output.V0 = V0; stage_output.V1 = V1; return stage_output; }