cbuffer _UniformBuffer : register(b0, space0) { row_major float2x2 _10_testMatrix2x2 : packoffset(c0); float4 _10_colorGreen : packoffset(c2); float4 _10_colorRed : packoffset(c3); }; static float4 sk_FragColor; struct SPIRV_Cross_Output { float4 sk_FragColor : SV_Target0; }; float4 main(float2 _25) { float4 _35 = 0.0f.xxxx; if (determinant(_10_testMatrix2x2) == (-2.0f)) { _35 = _10_colorGreen; } else { _35 = _10_colorRed; } return _35; } void frag_main() { float2 _21 = 0.0f.xx; sk_FragColor = main(_21); } SPIRV_Cross_Output main() { frag_main(); SPIRV_Cross_Output stage_output; stage_output.sk_FragColor = sk_FragColor; return stage_output; }