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 float3x3 _matrix = _9_testMatrix3x3; 20*c8dee2aaSAndroid Build Coastguard Worker float3 expected = float3(1.0f, 2.0f, 3.0f); 21*c8dee2aaSAndroid Build Coastguard Worker for (int index = 0; index < 3; index++) 22*c8dee2aaSAndroid Build Coastguard Worker { 23*c8dee2aaSAndroid Build Coastguard Worker if (any(bool3(_matrix[index].x != expected.x, _matrix[index].y != expected.y, _matrix[index].z != expected.z))) 24*c8dee2aaSAndroid Build Coastguard Worker { 25*c8dee2aaSAndroid Build Coastguard Worker return false; 26*c8dee2aaSAndroid Build Coastguard Worker } 27*c8dee2aaSAndroid Build Coastguard Worker expected += 3.0f.xxx; 28*c8dee2aaSAndroid Build Coastguard Worker } 29*c8dee2aaSAndroid Build Coastguard Worker return true; 30*c8dee2aaSAndroid Build Coastguard Worker} 31*c8dee2aaSAndroid Build Coastguard Worker 32*c8dee2aaSAndroid Build Coastguard Workerbool test4x4_b() 33*c8dee2aaSAndroid Build Coastguard Worker{ 34*c8dee2aaSAndroid Build Coastguard Worker float4x4 _matrix = _9_testMatrix4x4; 35*c8dee2aaSAndroid Build Coastguard Worker float4 expected = float4(1.0f, 2.0f, 3.0f, 4.0f); 36*c8dee2aaSAndroid Build Coastguard Worker for (int index = 0; index < 4; index++) 37*c8dee2aaSAndroid Build Coastguard Worker { 38*c8dee2aaSAndroid Build Coastguard Worker if (any(bool4(_matrix[index].x != expected.x, _matrix[index].y != expected.y, _matrix[index].z != expected.z, _matrix[index].w != expected.w))) 39*c8dee2aaSAndroid Build Coastguard Worker { 40*c8dee2aaSAndroid Build Coastguard Worker return false; 41*c8dee2aaSAndroid Build Coastguard Worker } 42*c8dee2aaSAndroid Build Coastguard Worker expected += 4.0f.xxxx; 43*c8dee2aaSAndroid Build Coastguard Worker } 44*c8dee2aaSAndroid Build Coastguard Worker return true; 45*c8dee2aaSAndroid Build Coastguard Worker} 46*c8dee2aaSAndroid Build Coastguard Worker 47*c8dee2aaSAndroid Build Coastguard Workerfloat4 main(float2 _103) 48*c8dee2aaSAndroid Build Coastguard Worker{ 49*c8dee2aaSAndroid Build Coastguard Worker bool _109 = false; 50*c8dee2aaSAndroid Build Coastguard Worker if (test3x3_b()) 51*c8dee2aaSAndroid Build Coastguard Worker { 52*c8dee2aaSAndroid Build Coastguard Worker _109 = test4x4_b(); 53*c8dee2aaSAndroid Build Coastguard Worker } 54*c8dee2aaSAndroid Build Coastguard Worker else 55*c8dee2aaSAndroid Build Coastguard Worker { 56*c8dee2aaSAndroid Build Coastguard Worker _109 = false; 57*c8dee2aaSAndroid Build Coastguard Worker } 58*c8dee2aaSAndroid Build Coastguard Worker float4 _110 = 0.0f.xxxx; 59*c8dee2aaSAndroid Build Coastguard Worker if (_109) 60*c8dee2aaSAndroid Build Coastguard Worker { 61*c8dee2aaSAndroid Build Coastguard Worker _110 = _9_colorGreen; 62*c8dee2aaSAndroid Build Coastguard Worker } 63*c8dee2aaSAndroid Build Coastguard Worker else 64*c8dee2aaSAndroid Build Coastguard Worker { 65*c8dee2aaSAndroid Build Coastguard Worker _110 = _9_colorRed; 66*c8dee2aaSAndroid Build Coastguard Worker } 67*c8dee2aaSAndroid Build Coastguard Worker return _110; 68*c8dee2aaSAndroid Build Coastguard Worker} 69*c8dee2aaSAndroid Build Coastguard Worker 70*c8dee2aaSAndroid Build Coastguard Workervoid frag_main() 71*c8dee2aaSAndroid Build Coastguard Worker{ 72*c8dee2aaSAndroid Build Coastguard Worker float2 _22 = 0.0f.xx; 73*c8dee2aaSAndroid Build Coastguard Worker sk_FragColor = main(_22); 74*c8dee2aaSAndroid Build Coastguard Worker} 75*c8dee2aaSAndroid Build Coastguard Worker 76*c8dee2aaSAndroid Build Coastguard WorkerSPIRV_Cross_Output main() 77*c8dee2aaSAndroid Build Coastguard Worker{ 78*c8dee2aaSAndroid Build Coastguard Worker frag_main(); 79*c8dee2aaSAndroid Build Coastguard Worker SPIRV_Cross_Output stage_output; 80*c8dee2aaSAndroid Build Coastguard Worker stage_output.sk_FragColor = sk_FragColor; 81*c8dee2aaSAndroid Build Coastguard Worker return stage_output; 82*c8dee2aaSAndroid Build Coastguard Worker} 83