1*c8dee2aaSAndroid Build Coastguard Workercbuffer _UniformBuffer : register(b0, space0) 2*c8dee2aaSAndroid Build Coastguard Worker{ 3*c8dee2aaSAndroid Build Coastguard Worker float4 _9_colorGreen : packoffset(c0); 4*c8dee2aaSAndroid Build Coastguard Worker float4 _9_colorRed : packoffset(c1); 5*c8dee2aaSAndroid Build Coastguard Worker row_major float3x3 _9_testMatrix3x3 : packoffset(c2); 6*c8dee2aaSAndroid Build Coastguard Worker row_major float4x4 _9_testMatrix4x4 : packoffset(c5); 7*c8dee2aaSAndroid Build Coastguard Worker}; 8*c8dee2aaSAndroid Build Coastguard Worker 9*c8dee2aaSAndroid Build Coastguard Worker 10*c8dee2aaSAndroid Build Coastguard Workerstatic float4 sk_FragColor; 11*c8dee2aaSAndroid Build Coastguard Worker 12*c8dee2aaSAndroid Build Coastguard Workerstruct SPIRV_Cross_Output 13*c8dee2aaSAndroid Build Coastguard Worker{ 14*c8dee2aaSAndroid Build Coastguard Worker float4 sk_FragColor : SV_Target0; 15*c8dee2aaSAndroid Build Coastguard Worker}; 16*c8dee2aaSAndroid Build Coastguard Worker 17*c8dee2aaSAndroid Build Coastguard Workerbool test3x3_b() 18*c8dee2aaSAndroid Build Coastguard Worker{ 19*c8dee2aaSAndroid Build Coastguard Worker float3 expected = float3(3.0f, 2.0f, 1.0f); 20*c8dee2aaSAndroid Build Coastguard Worker float3 vec = 0.0f.xxx; 21*c8dee2aaSAndroid Build Coastguard Worker for (int c = 0; c < 3; c++) 22*c8dee2aaSAndroid Build Coastguard Worker { 23*c8dee2aaSAndroid Build Coastguard Worker for (int r = 0; r < 3; r++) 24*c8dee2aaSAndroid Build Coastguard Worker { 25*c8dee2aaSAndroid Build Coastguard Worker vec[int3(2, 1, 0)[r]] = _9_testMatrix3x3[c][r]; 26*c8dee2aaSAndroid Build Coastguard Worker } 27*c8dee2aaSAndroid Build Coastguard Worker if (any(bool3(vec.x != expected.x, vec.y != expected.y, vec.z != expected.z))) 28*c8dee2aaSAndroid Build Coastguard Worker { 29*c8dee2aaSAndroid Build Coastguard Worker return false; 30*c8dee2aaSAndroid Build Coastguard Worker } 31*c8dee2aaSAndroid Build Coastguard Worker expected += 3.0f.xxx; 32*c8dee2aaSAndroid Build Coastguard Worker } 33*c8dee2aaSAndroid Build Coastguard Worker return true; 34*c8dee2aaSAndroid Build Coastguard Worker} 35*c8dee2aaSAndroid Build Coastguard Worker 36*c8dee2aaSAndroid Build Coastguard Workerbool test4x4_b() 37*c8dee2aaSAndroid Build Coastguard Worker{ 38*c8dee2aaSAndroid Build Coastguard Worker float4 expected = float4(4.0f, 3.0f, 2.0f, 1.0f); 39*c8dee2aaSAndroid Build Coastguard Worker float4 vec = 0.0f.xxxx; 40*c8dee2aaSAndroid Build Coastguard Worker for (int c = 0; c < 4; c++) 41*c8dee2aaSAndroid Build Coastguard Worker { 42*c8dee2aaSAndroid Build Coastguard Worker for (int r = 0; r < 4; r++) 43*c8dee2aaSAndroid Build Coastguard Worker { 44*c8dee2aaSAndroid Build Coastguard Worker vec[int4(3, 2, 1, 0)[r]] = _9_testMatrix4x4[c][r]; 45*c8dee2aaSAndroid Build Coastguard Worker } 46*c8dee2aaSAndroid Build Coastguard Worker if (any(bool4(vec.x != expected.x, vec.y != expected.y, vec.z != expected.z, vec.w != expected.w))) 47*c8dee2aaSAndroid Build Coastguard Worker { 48*c8dee2aaSAndroid Build Coastguard Worker return false; 49*c8dee2aaSAndroid Build Coastguard Worker } 50*c8dee2aaSAndroid Build Coastguard Worker expected += 4.0f.xxxx; 51*c8dee2aaSAndroid Build Coastguard Worker } 52*c8dee2aaSAndroid Build Coastguard Worker return true; 53*c8dee2aaSAndroid Build Coastguard Worker} 54*c8dee2aaSAndroid Build Coastguard Worker 55*c8dee2aaSAndroid Build Coastguard Workerfloat4 main(float2 _138) 56*c8dee2aaSAndroid Build Coastguard Worker{ 57*c8dee2aaSAndroid Build Coastguard Worker bool _144 = false; 58*c8dee2aaSAndroid Build Coastguard Worker if (test3x3_b()) 59*c8dee2aaSAndroid Build Coastguard Worker { 60*c8dee2aaSAndroid Build Coastguard Worker _144 = test4x4_b(); 61*c8dee2aaSAndroid Build Coastguard Worker } 62*c8dee2aaSAndroid Build Coastguard Worker else 63*c8dee2aaSAndroid Build Coastguard Worker { 64*c8dee2aaSAndroid Build Coastguard Worker _144 = false; 65*c8dee2aaSAndroid Build Coastguard Worker } 66*c8dee2aaSAndroid Build Coastguard Worker float4 _145 = 0.0f.xxxx; 67*c8dee2aaSAndroid Build Coastguard Worker if (_144) 68*c8dee2aaSAndroid Build Coastguard Worker { 69*c8dee2aaSAndroid Build Coastguard Worker _145 = _9_colorGreen; 70*c8dee2aaSAndroid Build Coastguard Worker } 71*c8dee2aaSAndroid Build Coastguard Worker else 72*c8dee2aaSAndroid Build Coastguard Worker { 73*c8dee2aaSAndroid Build Coastguard Worker _145 = _9_colorRed; 74*c8dee2aaSAndroid Build Coastguard Worker } 75*c8dee2aaSAndroid Build Coastguard Worker return _145; 76*c8dee2aaSAndroid Build Coastguard Worker} 77*c8dee2aaSAndroid Build Coastguard Worker 78*c8dee2aaSAndroid Build Coastguard Workervoid frag_main() 79*c8dee2aaSAndroid Build Coastguard Worker{ 80*c8dee2aaSAndroid Build Coastguard Worker float2 _22 = 0.0f.xx; 81*c8dee2aaSAndroid Build Coastguard Worker sk_FragColor = main(_22); 82*c8dee2aaSAndroid Build Coastguard Worker} 83*c8dee2aaSAndroid Build Coastguard Worker 84*c8dee2aaSAndroid Build Coastguard WorkerSPIRV_Cross_Output main() 85*c8dee2aaSAndroid Build Coastguard Worker{ 86*c8dee2aaSAndroid Build Coastguard Worker frag_main(); 87*c8dee2aaSAndroid Build Coastguard Worker SPIRV_Cross_Output stage_output; 88*c8dee2aaSAndroid Build Coastguard Worker stage_output.sk_FragColor = sk_FragColor; 89*c8dee2aaSAndroid Build Coastguard Worker return stage_output; 90*c8dee2aaSAndroid Build Coastguard Worker} 91