1*c8dee2aaSAndroid Build Coastguard Workercbuffer _UniformBuffer : register(b0, space0) 2*c8dee2aaSAndroid Build Coastguard Worker{ 3*c8dee2aaSAndroid Build Coastguard Worker float4 _7_colorGreen : packoffset(c0); 4*c8dee2aaSAndroid Build Coastguard Worker float4 _7_colorRed : packoffset(c1); 5*c8dee2aaSAndroid Build Coastguard Worker}; 6*c8dee2aaSAndroid Build Coastguard Worker 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Workerstatic float4 sk_FragColor; 9*c8dee2aaSAndroid Build Coastguard Worker 10*c8dee2aaSAndroid Build Coastguard Workerstruct SPIRV_Cross_Output 11*c8dee2aaSAndroid Build Coastguard Worker{ 12*c8dee2aaSAndroid Build Coastguard Worker float4 sk_FragColor : SV_Target0; 13*c8dee2aaSAndroid Build Coastguard Worker}; 14*c8dee2aaSAndroid Build Coastguard Worker 15*c8dee2aaSAndroid Build Coastguard Worker// Returns the inverse of a matrix, by using the algorithm of calculating the classical 16*c8dee2aaSAndroid Build Coastguard Worker// adjoint and dividing by the determinant. The contents of the matrix are changed. 17*c8dee2aaSAndroid Build Coastguard Workerfloat2x2 spvInverse(float2x2 m) 18*c8dee2aaSAndroid Build Coastguard Worker{ 19*c8dee2aaSAndroid Build Coastguard Worker float2x2 adj; // The adjoint matrix (inverse after dividing by determinant) 20*c8dee2aaSAndroid Build Coastguard Worker 21*c8dee2aaSAndroid Build Coastguard Worker // Create the transpose of the cofactors, as the classical adjoint of the matrix. 22*c8dee2aaSAndroid Build Coastguard Worker adj[0][0] = m[1][1]; 23*c8dee2aaSAndroid Build Coastguard Worker adj[0][1] = -m[0][1]; 24*c8dee2aaSAndroid Build Coastguard Worker 25*c8dee2aaSAndroid Build Coastguard Worker adj[1][0] = -m[1][0]; 26*c8dee2aaSAndroid Build Coastguard Worker adj[1][1] = m[0][0]; 27*c8dee2aaSAndroid Build Coastguard Worker 28*c8dee2aaSAndroid Build Coastguard Worker // Calculate the determinant as a combination of the cofactors of the first row. 29*c8dee2aaSAndroid Build Coastguard Worker float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]); 30*c8dee2aaSAndroid Build Coastguard Worker 31*c8dee2aaSAndroid Build Coastguard Worker // Divide the classical adjoint matrix by the determinant. 32*c8dee2aaSAndroid Build Coastguard Worker // If determinant is zero, matrix is not invertable, so leave it unchanged. 33*c8dee2aaSAndroid Build Coastguard Worker return (det != 0.0f) ? (adj * (1.0f / det)) : m; 34*c8dee2aaSAndroid Build Coastguard Worker} 35*c8dee2aaSAndroid Build Coastguard Worker 36*c8dee2aaSAndroid Build Coastguard Worker// Returns the determinant of a 2x2 matrix. 37*c8dee2aaSAndroid Build Coastguard Workerfloat spvDet2x2(float a1, float a2, float b1, float b2) 38*c8dee2aaSAndroid Build Coastguard Worker{ 39*c8dee2aaSAndroid Build Coastguard Worker return a1 * b2 - b1 * a2; 40*c8dee2aaSAndroid Build Coastguard Worker} 41*c8dee2aaSAndroid Build Coastguard Worker 42*c8dee2aaSAndroid Build Coastguard Worker// Returns the inverse of a matrix, by using the algorithm of calculating the classical 43*c8dee2aaSAndroid Build Coastguard Worker// adjoint and dividing by the determinant. The contents of the matrix are changed. 44*c8dee2aaSAndroid Build Coastguard Workerfloat3x3 spvInverse(float3x3 m) 45*c8dee2aaSAndroid Build Coastguard Worker{ 46*c8dee2aaSAndroid Build Coastguard Worker float3x3 adj; // The adjoint matrix (inverse after dividing by determinant) 47*c8dee2aaSAndroid Build Coastguard Worker 48*c8dee2aaSAndroid Build Coastguard Worker // Create the transpose of the cofactors, as the classical adjoint of the matrix. 49*c8dee2aaSAndroid Build Coastguard Worker adj[0][0] = spvDet2x2(m[1][1], m[1][2], m[2][1], m[2][2]); 50*c8dee2aaSAndroid Build Coastguard Worker adj[0][1] = -spvDet2x2(m[0][1], m[0][2], m[2][1], m[2][2]); 51*c8dee2aaSAndroid Build Coastguard Worker adj[0][2] = spvDet2x2(m[0][1], m[0][2], m[1][1], m[1][2]); 52*c8dee2aaSAndroid Build Coastguard Worker 53*c8dee2aaSAndroid Build Coastguard Worker adj[1][0] = -spvDet2x2(m[1][0], m[1][2], m[2][0], m[2][2]); 54*c8dee2aaSAndroid Build Coastguard Worker adj[1][1] = spvDet2x2(m[0][0], m[0][2], m[2][0], m[2][2]); 55*c8dee2aaSAndroid Build Coastguard Worker adj[1][2] = -spvDet2x2(m[0][0], m[0][2], m[1][0], m[1][2]); 56*c8dee2aaSAndroid Build Coastguard Worker 57*c8dee2aaSAndroid Build Coastguard Worker adj[2][0] = spvDet2x2(m[1][0], m[1][1], m[2][0], m[2][1]); 58*c8dee2aaSAndroid Build Coastguard Worker adj[2][1] = -spvDet2x2(m[0][0], m[0][1], m[2][0], m[2][1]); 59*c8dee2aaSAndroid Build Coastguard Worker adj[2][2] = spvDet2x2(m[0][0], m[0][1], m[1][0], m[1][1]); 60*c8dee2aaSAndroid Build Coastguard Worker 61*c8dee2aaSAndroid Build Coastguard Worker // Calculate the determinant as a combination of the cofactors of the first row. 62*c8dee2aaSAndroid Build Coastguard Worker float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]) + (adj[0][2] * m[2][0]); 63*c8dee2aaSAndroid Build Coastguard Worker 64*c8dee2aaSAndroid Build Coastguard Worker // Divide the classical adjoint matrix by the determinant. 65*c8dee2aaSAndroid Build Coastguard Worker // If determinant is zero, matrix is not invertable, so leave it unchanged. 66*c8dee2aaSAndroid Build Coastguard Worker return (det != 0.0f) ? (adj * (1.0f / det)) : m; 67*c8dee2aaSAndroid Build Coastguard Worker} 68*c8dee2aaSAndroid Build Coastguard Worker 69*c8dee2aaSAndroid Build Coastguard Worker// Returns the determinant of a 3x3 matrix. 70*c8dee2aaSAndroid Build Coastguard Workerfloat spvDet3x3(float a1, float a2, float a3, float b1, float b2, float b3, float c1, float c2, float c3) 71*c8dee2aaSAndroid Build Coastguard Worker{ 72*c8dee2aaSAndroid Build Coastguard Worker return a1 * spvDet2x2(b2, b3, c2, c3) - b1 * spvDet2x2(a2, a3, c2, c3) + c1 * spvDet2x2(a2, a3, b2, b3); 73*c8dee2aaSAndroid Build Coastguard Worker} 74*c8dee2aaSAndroid Build Coastguard Worker 75*c8dee2aaSAndroid Build Coastguard Worker// Returns the inverse of a matrix, by using the algorithm of calculating the classical 76*c8dee2aaSAndroid Build Coastguard Worker// adjoint and dividing by the determinant. The contents of the matrix are changed. 77*c8dee2aaSAndroid Build Coastguard Workerfloat4x4 spvInverse(float4x4 m) 78*c8dee2aaSAndroid Build Coastguard Worker{ 79*c8dee2aaSAndroid Build Coastguard Worker float4x4 adj; // The adjoint matrix (inverse after dividing by determinant) 80*c8dee2aaSAndroid Build Coastguard Worker 81*c8dee2aaSAndroid Build Coastguard Worker // Create the transpose of the cofactors, as the classical adjoint of the matrix. 82*c8dee2aaSAndroid Build Coastguard Worker adj[0][0] = spvDet3x3(m[1][1], m[1][2], m[1][3], m[2][1], m[2][2], m[2][3], m[3][1], m[3][2], m[3][3]); 83*c8dee2aaSAndroid Build Coastguard Worker adj[0][1] = -spvDet3x3(m[0][1], m[0][2], m[0][3], m[2][1], m[2][2], m[2][3], m[3][1], m[3][2], m[3][3]); 84*c8dee2aaSAndroid Build Coastguard Worker adj[0][2] = spvDet3x3(m[0][1], m[0][2], m[0][3], m[1][1], m[1][2], m[1][3], m[3][1], m[3][2], m[3][3]); 85*c8dee2aaSAndroid Build Coastguard Worker adj[0][3] = -spvDet3x3(m[0][1], m[0][2], m[0][3], m[1][1], m[1][2], m[1][3], m[2][1], m[2][2], m[2][3]); 86*c8dee2aaSAndroid Build Coastguard Worker 87*c8dee2aaSAndroid Build Coastguard Worker adj[1][0] = -spvDet3x3(m[1][0], m[1][2], m[1][3], m[2][0], m[2][2], m[2][3], m[3][0], m[3][2], m[3][3]); 88*c8dee2aaSAndroid Build Coastguard Worker adj[1][1] = spvDet3x3(m[0][0], m[0][2], m[0][3], m[2][0], m[2][2], m[2][3], m[3][0], m[3][2], m[3][3]); 89*c8dee2aaSAndroid Build Coastguard Worker adj[1][2] = -spvDet3x3(m[0][0], m[0][2], m[0][3], m[1][0], m[1][2], m[1][3], m[3][0], m[3][2], m[3][3]); 90*c8dee2aaSAndroid Build Coastguard Worker adj[1][3] = spvDet3x3(m[0][0], m[0][2], m[0][3], m[1][0], m[1][2], m[1][3], m[2][0], m[2][2], m[2][3]); 91*c8dee2aaSAndroid Build Coastguard Worker 92*c8dee2aaSAndroid Build Coastguard Worker adj[2][0] = spvDet3x3(m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3], m[3][0], m[3][1], m[3][3]); 93*c8dee2aaSAndroid Build Coastguard Worker adj[2][1] = -spvDet3x3(m[0][0], m[0][1], m[0][3], m[2][0], m[2][1], m[2][3], m[3][0], m[3][1], m[3][3]); 94*c8dee2aaSAndroid Build Coastguard Worker adj[2][2] = spvDet3x3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[3][0], m[3][1], m[3][3]); 95*c8dee2aaSAndroid Build Coastguard Worker adj[2][3] = -spvDet3x3(m[0][0], m[0][1], m[0][3], m[1][0], m[1][1], m[1][3], m[2][0], m[2][1], m[2][3]); 96*c8dee2aaSAndroid Build Coastguard Worker 97*c8dee2aaSAndroid Build Coastguard Worker adj[3][0] = -spvDet3x3(m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2], m[3][0], m[3][1], m[3][2]); 98*c8dee2aaSAndroid Build Coastguard Worker adj[3][1] = spvDet3x3(m[0][0], m[0][1], m[0][2], m[2][0], m[2][1], m[2][2], m[3][0], m[3][1], m[3][2]); 99*c8dee2aaSAndroid Build Coastguard Worker adj[3][2] = -spvDet3x3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[3][0], m[3][1], m[3][2]); 100*c8dee2aaSAndroid Build Coastguard Worker adj[3][3] = spvDet3x3(m[0][0], m[0][1], m[0][2], m[1][0], m[1][1], m[1][2], m[2][0], m[2][1], m[2][2]); 101*c8dee2aaSAndroid Build Coastguard Worker 102*c8dee2aaSAndroid Build Coastguard Worker // Calculate the determinant as a combination of the cofactors of the first row. 103*c8dee2aaSAndroid Build Coastguard Worker float det = (adj[0][0] * m[0][0]) + (adj[0][1] * m[1][0]) + (adj[0][2] * m[2][0]) + (adj[0][3] * m[3][0]); 104*c8dee2aaSAndroid Build Coastguard Worker 105*c8dee2aaSAndroid Build Coastguard Worker // Divide the classical adjoint matrix by the determinant. 106*c8dee2aaSAndroid Build Coastguard Worker // If determinant is zero, matrix is not invertable, so leave it unchanged. 107*c8dee2aaSAndroid Build Coastguard Worker return (det != 0.0f) ? (adj * (1.0f / det)) : m; 108*c8dee2aaSAndroid Build Coastguard Worker} 109*c8dee2aaSAndroid Build Coastguard Worker 110*c8dee2aaSAndroid Build Coastguard Workerfloat4 main(float2 _21) 111*c8dee2aaSAndroid Build Coastguard Worker{ 112*c8dee2aaSAndroid Build Coastguard Worker float2x2 matrix2x2 = float2x2(float2(1.0f, 2.0f), float2(3.0f, 4.0f)); 113*c8dee2aaSAndroid Build Coastguard Worker float2x2 inv2x2 = float2x2(float2(-2.0f, 1.0f), float2(1.5f, -0.5f)); 114*c8dee2aaSAndroid Build Coastguard Worker float3x3 inv3x3 = float3x3(float3(-24.0f, 18.0f, 5.0f), float3(20.0f, -15.0f, -4.0f), float3(-5.0f, 4.0f, 1.0f)); 115*c8dee2aaSAndroid Build Coastguard Worker float4x4 inv4x4 = float4x4(float4(-2.0f, -0.5f, 1.0f, 0.5f), float4(1.0f, 0.5f, 0.0f, -0.5f), float4(-8.0f, -1.0f, 2.0f, 2.0f), float4(3.0f, 0.5f, -1.0f, -0.5f)); 116*c8dee2aaSAndroid Build Coastguard Worker float Zero = _7_colorGreen.z; 117*c8dee2aaSAndroid Build Coastguard Worker bool _93 = false; 118*c8dee2aaSAndroid Build Coastguard Worker if (all(bool2(float2(-2.0f, 1.0f).x == float2(-2.0f, 1.0f).x, float2(-2.0f, 1.0f).y == float2(-2.0f, 1.0f).y)) && all(bool2(float2(1.5f, -0.5f).x == float2(1.5f, -0.5f).x, float2(1.5f, -0.5f).y == float2(1.5f, -0.5f).y))) 119*c8dee2aaSAndroid Build Coastguard Worker { 120*c8dee2aaSAndroid Build Coastguard Worker _93 = (all(bool3(float3(-24.0f, 18.0f, 5.0f).x == float3(-24.0f, 18.0f, 5.0f).x, float3(-24.0f, 18.0f, 5.0f).y == float3(-24.0f, 18.0f, 5.0f).y, float3(-24.0f, 18.0f, 5.0f).z == float3(-24.0f, 18.0f, 5.0f).z)) && all(bool3(float3(20.0f, -15.0f, -4.0f).x == float3(20.0f, -15.0f, -4.0f).x, float3(20.0f, -15.0f, -4.0f).y == float3(20.0f, -15.0f, -4.0f).y, float3(20.0f, -15.0f, -4.0f).z == float3(20.0f, -15.0f, -4.0f).z))) && all(bool3(float3(-5.0f, 4.0f, 1.0f).x == float3(-5.0f, 4.0f, 1.0f).x, float3(-5.0f, 4.0f, 1.0f).y == float3(-5.0f, 4.0f, 1.0f).y, float3(-5.0f, 4.0f, 1.0f).z == float3(-5.0f, 4.0f, 1.0f).z)); 121*c8dee2aaSAndroid Build Coastguard Worker } 122*c8dee2aaSAndroid Build Coastguard Worker else 123*c8dee2aaSAndroid Build Coastguard Worker { 124*c8dee2aaSAndroid Build Coastguard Worker _93 = false; 125*c8dee2aaSAndroid Build Coastguard Worker } 126*c8dee2aaSAndroid Build Coastguard Worker bool _108 = false; 127*c8dee2aaSAndroid Build Coastguard Worker if (_93) 128*c8dee2aaSAndroid Build Coastguard Worker { 129*c8dee2aaSAndroid Build Coastguard Worker _108 = ((all(bool4(float4(-2.0f, -0.5f, 1.0f, 0.5f).x == float4(-2.0f, -0.5f, 1.0f, 0.5f).x, float4(-2.0f, -0.5f, 1.0f, 0.5f).y == float4(-2.0f, -0.5f, 1.0f, 0.5f).y, float4(-2.0f, -0.5f, 1.0f, 0.5f).z == float4(-2.0f, -0.5f, 1.0f, 0.5f).z, float4(-2.0f, -0.5f, 1.0f, 0.5f).w == float4(-2.0f, -0.5f, 1.0f, 0.5f).w)) && all(bool4(float4(1.0f, 0.5f, 0.0f, -0.5f).x == float4(1.0f, 0.5f, 0.0f, -0.5f).x, float4(1.0f, 0.5f, 0.0f, -0.5f).y == float4(1.0f, 0.5f, 0.0f, -0.5f).y, float4(1.0f, 0.5f, 0.0f, -0.5f).z == float4(1.0f, 0.5f, 0.0f, -0.5f).z, float4(1.0f, 0.5f, 0.0f, -0.5f).w == float4(1.0f, 0.5f, 0.0f, -0.5f).w))) && all(bool4(float4(-8.0f, -1.0f, 2.0f, 2.0f).x == float4(-8.0f, -1.0f, 2.0f, 2.0f).x, float4(-8.0f, -1.0f, 2.0f, 2.0f).y == float4(-8.0f, -1.0f, 2.0f, 2.0f).y, float4(-8.0f, -1.0f, 2.0f, 2.0f).z == float4(-8.0f, -1.0f, 2.0f, 2.0f).z, float4(-8.0f, -1.0f, 2.0f, 2.0f).w == float4(-8.0f, -1.0f, 2.0f, 2.0f).w))) && all(bool4(float4(3.0f, 0.5f, -1.0f, -0.5f).x == float4(3.0f, 0.5f, -1.0f, -0.5f).x, float4(3.0f, 0.5f, -1.0f, -0.5f).y == float4(3.0f, 0.5f, -1.0f, -0.5f).y, float4(3.0f, 0.5f, -1.0f, -0.5f).z == float4(3.0f, 0.5f, -1.0f, -0.5f).z, float4(3.0f, 0.5f, -1.0f, -0.5f).w == float4(3.0f, 0.5f, -1.0f, -0.5f).w)); 130*c8dee2aaSAndroid Build Coastguard Worker } 131*c8dee2aaSAndroid Build Coastguard Worker else 132*c8dee2aaSAndroid Build Coastguard Worker { 133*c8dee2aaSAndroid Build Coastguard Worker _108 = false; 134*c8dee2aaSAndroid Build Coastguard Worker } 135*c8dee2aaSAndroid Build Coastguard Worker bool _131 = false; 136*c8dee2aaSAndroid Build Coastguard Worker if (_108) 137*c8dee2aaSAndroid Build Coastguard Worker { 138*c8dee2aaSAndroid Build Coastguard Worker float3x3 _111 = spvInverse(float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f))); 139*c8dee2aaSAndroid Build Coastguard Worker float3 _120 = _111[0]; 140*c8dee2aaSAndroid Build Coastguard Worker float3 _123 = _111[1]; 141*c8dee2aaSAndroid Build Coastguard Worker float3 _127 = _111[2]; 142*c8dee2aaSAndroid Build Coastguard Worker _131 = (any(bool3(_120.x != float3(-24.0f, 18.0f, 5.0f).x, _120.y != float3(-24.0f, 18.0f, 5.0f).y, _120.z != float3(-24.0f, 18.0f, 5.0f).z)) || any(bool3(_123.x != float3(20.0f, -15.0f, -4.0f).x, _123.y != float3(20.0f, -15.0f, -4.0f).y, _123.z != float3(20.0f, -15.0f, -4.0f).z))) || any(bool3(_127.x != float3(-5.0f, 4.0f, 1.0f).x, _127.y != float3(-5.0f, 4.0f, 1.0f).y, _127.z != float3(-5.0f, 4.0f, 1.0f).z)); 143*c8dee2aaSAndroid Build Coastguard Worker } 144*c8dee2aaSAndroid Build Coastguard Worker else 145*c8dee2aaSAndroid Build Coastguard Worker { 146*c8dee2aaSAndroid Build Coastguard Worker _131 = false; 147*c8dee2aaSAndroid Build Coastguard Worker } 148*c8dee2aaSAndroid Build Coastguard Worker bool _147 = false; 149*c8dee2aaSAndroid Build Coastguard Worker if (_131) 150*c8dee2aaSAndroid Build Coastguard Worker { 151*c8dee2aaSAndroid Build Coastguard Worker float2 _135 = _7_colorGreen.z.xx; 152*c8dee2aaSAndroid Build Coastguard Worker float2x2 _134 = spvInverse(float2x2(float2(1.0f, 2.0f) + _135, float2(3.0f, 4.0f) + _135)); 153*c8dee2aaSAndroid Build Coastguard Worker float2 _140 = _134[0]; 154*c8dee2aaSAndroid Build Coastguard Worker float2 _143 = _134[1]; 155*c8dee2aaSAndroid Build Coastguard Worker _147 = all(bool2(_140.x == float2(-2.0f, 1.0f).x, _140.y == float2(-2.0f, 1.0f).y)) && all(bool2(_143.x == float2(1.5f, -0.5f).x, _143.y == float2(1.5f, -0.5f).y)); 156*c8dee2aaSAndroid Build Coastguard Worker } 157*c8dee2aaSAndroid Build Coastguard Worker else 158*c8dee2aaSAndroid Build Coastguard Worker { 159*c8dee2aaSAndroid Build Coastguard Worker _147 = false; 160*c8dee2aaSAndroid Build Coastguard Worker } 161*c8dee2aaSAndroid Build Coastguard Worker bool _171 = false; 162*c8dee2aaSAndroid Build Coastguard Worker if (_147) 163*c8dee2aaSAndroid Build Coastguard Worker { 164*c8dee2aaSAndroid Build Coastguard Worker float3 _154 = _7_colorGreen.z.xxx; 165*c8dee2aaSAndroid Build Coastguard Worker float3x3 _150 = spvInverse(float3x3(float3(1.0f, 2.0f, 3.0f) + _154, float3(0.0f, 1.0f, 4.0f) + _154, float3(5.0f, 6.0f, 0.0f) + _154)); 166*c8dee2aaSAndroid Build Coastguard Worker float3 _160 = _150[0]; 167*c8dee2aaSAndroid Build Coastguard Worker float3 _163 = _150[1]; 168*c8dee2aaSAndroid Build Coastguard Worker float3 _167 = _150[2]; 169*c8dee2aaSAndroid Build Coastguard Worker _171 = (all(bool3(_160.x == float3(-24.0f, 18.0f, 5.0f).x, _160.y == float3(-24.0f, 18.0f, 5.0f).y, _160.z == float3(-24.0f, 18.0f, 5.0f).z)) && all(bool3(_163.x == float3(20.0f, -15.0f, -4.0f).x, _163.y == float3(20.0f, -15.0f, -4.0f).y, _163.z == float3(20.0f, -15.0f, -4.0f).z))) && all(bool3(_167.x == float3(-5.0f, 4.0f, 1.0f).x, _167.y == float3(-5.0f, 4.0f, 1.0f).y, _167.z == float3(-5.0f, 4.0f, 1.0f).z)); 170*c8dee2aaSAndroid Build Coastguard Worker } 171*c8dee2aaSAndroid Build Coastguard Worker else 172*c8dee2aaSAndroid Build Coastguard Worker { 173*c8dee2aaSAndroid Build Coastguard Worker _171 = false; 174*c8dee2aaSAndroid Build Coastguard Worker } 175*c8dee2aaSAndroid Build Coastguard Worker bool _202 = false; 176*c8dee2aaSAndroid Build Coastguard Worker if (_171) 177*c8dee2aaSAndroid Build Coastguard Worker { 178*c8dee2aaSAndroid Build Coastguard Worker float4 _180 = _7_colorGreen.z.xxxx; 179*c8dee2aaSAndroid Build Coastguard Worker float4x4 _174 = spvInverse(float4x4(float4(1.0f, 0.0f, 0.0f, 1.0f) + _180, float4(0.0f, 2.0f, 1.0f, 2.0f) + _180, float4(2.0f, 1.0f, 0.0f, 1.0f) + _180, float4(2.0f, 0.0f, 1.0f, 4.0f) + _180)); 180*c8dee2aaSAndroid Build Coastguard Worker float4 _187 = _174[0]; 181*c8dee2aaSAndroid Build Coastguard Worker float4 _190 = _174[1]; 182*c8dee2aaSAndroid Build Coastguard Worker float4 _194 = _174[2]; 183*c8dee2aaSAndroid Build Coastguard Worker float4 _198 = _174[3]; 184*c8dee2aaSAndroid Build Coastguard Worker _202 = ((all(bool4(_187.x == float4(-2.0f, -0.5f, 1.0f, 0.5f).x, _187.y == float4(-2.0f, -0.5f, 1.0f, 0.5f).y, _187.z == float4(-2.0f, -0.5f, 1.0f, 0.5f).z, _187.w == float4(-2.0f, -0.5f, 1.0f, 0.5f).w)) && all(bool4(_190.x == float4(1.0f, 0.5f, 0.0f, -0.5f).x, _190.y == float4(1.0f, 0.5f, 0.0f, -0.5f).y, _190.z == float4(1.0f, 0.5f, 0.0f, -0.5f).z, _190.w == float4(1.0f, 0.5f, 0.0f, -0.5f).w))) && all(bool4(_194.x == float4(-8.0f, -1.0f, 2.0f, 2.0f).x, _194.y == float4(-8.0f, -1.0f, 2.0f, 2.0f).y, _194.z == float4(-8.0f, -1.0f, 2.0f, 2.0f).z, _194.w == float4(-8.0f, -1.0f, 2.0f, 2.0f).w))) && all(bool4(_198.x == float4(3.0f, 0.5f, -1.0f, -0.5f).x, _198.y == float4(3.0f, 0.5f, -1.0f, -0.5f).y, _198.z == float4(3.0f, 0.5f, -1.0f, -0.5f).z, _198.w == float4(3.0f, 0.5f, -1.0f, -0.5f).w)); 185*c8dee2aaSAndroid Build Coastguard Worker } 186*c8dee2aaSAndroid Build Coastguard Worker else 187*c8dee2aaSAndroid Build Coastguard Worker { 188*c8dee2aaSAndroid Build Coastguard Worker _202 = false; 189*c8dee2aaSAndroid Build Coastguard Worker } 190*c8dee2aaSAndroid Build Coastguard Worker float4 _203 = 0.0f.xxxx; 191*c8dee2aaSAndroid Build Coastguard Worker if (_202) 192*c8dee2aaSAndroid Build Coastguard Worker { 193*c8dee2aaSAndroid Build Coastguard Worker _203 = _7_colorGreen; 194*c8dee2aaSAndroid Build Coastguard Worker } 195*c8dee2aaSAndroid Build Coastguard Worker else 196*c8dee2aaSAndroid Build Coastguard Worker { 197*c8dee2aaSAndroid Build Coastguard Worker _203 = _7_colorRed; 198*c8dee2aaSAndroid Build Coastguard Worker } 199*c8dee2aaSAndroid Build Coastguard Worker return _203; 200*c8dee2aaSAndroid Build Coastguard Worker} 201*c8dee2aaSAndroid Build Coastguard Worker 202*c8dee2aaSAndroid Build Coastguard Workervoid frag_main() 203*c8dee2aaSAndroid Build Coastguard Worker{ 204*c8dee2aaSAndroid Build Coastguard Worker float2 _17 = 0.0f.xx; 205*c8dee2aaSAndroid Build Coastguard Worker sk_FragColor = main(_17); 206*c8dee2aaSAndroid Build Coastguard Worker} 207*c8dee2aaSAndroid Build Coastguard Worker 208*c8dee2aaSAndroid Build Coastguard WorkerSPIRV_Cross_Output main() 209*c8dee2aaSAndroid Build Coastguard Worker{ 210*c8dee2aaSAndroid Build Coastguard Worker frag_main(); 211*c8dee2aaSAndroid Build Coastguard Worker SPIRV_Cross_Output stage_output; 212*c8dee2aaSAndroid Build Coastguard Worker stage_output.sk_FragColor = sk_FragColor; 213*c8dee2aaSAndroid Build Coastguard Worker return stage_output; 214*c8dee2aaSAndroid Build Coastguard Worker} 215