1*c8dee2aaSAndroid Build Coastguard Workerdiagnostic(off, derivative_uniformity); 2*c8dee2aaSAndroid Build Coastguard Workerdiagnostic(off, chromium.unreachable_code); 3*c8dee2aaSAndroid Build Coastguard Workerstruct _GlobalUniforms { 4*c8dee2aaSAndroid Build Coastguard Worker colorGreen: vec4<f32>, 5*c8dee2aaSAndroid Build Coastguard Worker colorRed: vec4<f32>, 6*c8dee2aaSAndroid Build Coastguard Worker}; 7*c8dee2aaSAndroid Build Coastguard Worker@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms; 8*c8dee2aaSAndroid Build Coastguard Workerfn test_same_arrays_bbfff(eq: bool, f1: f32, f2: f32, f3: f32) -> bool { 9*c8dee2aaSAndroid Build Coastguard Worker { 10*c8dee2aaSAndroid Build Coastguard Worker let one: f32 = f32(_globalUniforms.colorGreen.x + 1.0); 11*c8dee2aaSAndroid Build Coastguard Worker var a: array<f32, 3>; 12*c8dee2aaSAndroid Build Coastguard Worker a[0] = f1; 13*c8dee2aaSAndroid Build Coastguard Worker a[1] = f2; 14*c8dee2aaSAndroid Build Coastguard Worker a[2] = f3; 15*c8dee2aaSAndroid Build Coastguard Worker var b: array<f32, 3>; 16*c8dee2aaSAndroid Build Coastguard Worker b[0] = f1 * one; 17*c8dee2aaSAndroid Build Coastguard Worker b[1] = f2 * one; 18*c8dee2aaSAndroid Build Coastguard Worker b[2] = f3 * one; 19*c8dee2aaSAndroid Build Coastguard Worker var _skTemp0: bool; 20*c8dee2aaSAndroid Build Coastguard Worker if eq { 21*c8dee2aaSAndroid Build Coastguard Worker _skTemp0 = ((a[0] == b[0]) && (a[1] == b[1]) && (a[2] == b[2])); 22*c8dee2aaSAndroid Build Coastguard Worker } else { 23*c8dee2aaSAndroid Build Coastguard Worker _skTemp0 = ((a[0] != b[0]) || (a[1] != b[1]) || (a[2] != b[2])); 24*c8dee2aaSAndroid Build Coastguard Worker } 25*c8dee2aaSAndroid Build Coastguard Worker return _skTemp0; 26*c8dee2aaSAndroid Build Coastguard Worker } 27*c8dee2aaSAndroid Build Coastguard Worker} 28*c8dee2aaSAndroid Build Coastguard Workerfn test_diff_arrays_bbfff(eq: bool, f1: f32, f2: f32, f3: f32) -> bool { 29*c8dee2aaSAndroid Build Coastguard Worker { 30*c8dee2aaSAndroid Build Coastguard Worker let two: f32 = f32(_globalUniforms.colorGreen.x + 2.0); 31*c8dee2aaSAndroid Build Coastguard Worker var a: array<f32, 3>; 32*c8dee2aaSAndroid Build Coastguard Worker a[0] = f1; 33*c8dee2aaSAndroid Build Coastguard Worker a[1] = f2; 34*c8dee2aaSAndroid Build Coastguard Worker a[2] = f3; 35*c8dee2aaSAndroid Build Coastguard Worker var b: array<f32, 3>; 36*c8dee2aaSAndroid Build Coastguard Worker b[0] = f1 * two; 37*c8dee2aaSAndroid Build Coastguard Worker b[1] = f2 * two; 38*c8dee2aaSAndroid Build Coastguard Worker b[2] = f3; 39*c8dee2aaSAndroid Build Coastguard Worker var _skTemp1: bool; 40*c8dee2aaSAndroid Build Coastguard Worker if eq { 41*c8dee2aaSAndroid Build Coastguard Worker _skTemp1 = ((a[0] == b[0]) && (a[1] == b[1]) && (a[2] == b[2])); 42*c8dee2aaSAndroid Build Coastguard Worker } else { 43*c8dee2aaSAndroid Build Coastguard Worker _skTemp1 = ((a[0] != b[0]) || (a[1] != b[1]) || (a[2] != b[2])); 44*c8dee2aaSAndroid Build Coastguard Worker } 45*c8dee2aaSAndroid Build Coastguard Worker return _skTemp1; 46*c8dee2aaSAndroid Build Coastguard Worker } 47*c8dee2aaSAndroid Build Coastguard Worker} 48*c8dee2aaSAndroid Build Coastguard Workerfn _skslMain(coords: vec2<f32>) -> vec4<f32> { 49*c8dee2aaSAndroid Build Coastguard Worker { 50*c8dee2aaSAndroid Build Coastguard Worker let NAN1: f32 = f32(_globalUniforms.colorGreen.x / _globalUniforms.colorGreen.z); 51*c8dee2aaSAndroid Build Coastguard Worker let NAN2: f32 = f32(_globalUniforms.colorGreen.z / _globalUniforms.colorGreen.x); 52*c8dee2aaSAndroid Build Coastguard Worker let ZP: f32 = f32(_globalUniforms.colorGreen.x * _globalUniforms.colorGreen.z); 53*c8dee2aaSAndroid Build Coastguard Worker let ZM: f32 = f32(-_globalUniforms.colorGreen.x * _globalUniforms.colorGreen.z); 54*c8dee2aaSAndroid Build Coastguard Worker let F42: f32 = f32(_globalUniforms.colorGreen.y * 42.0); 55*c8dee2aaSAndroid Build Coastguard Worker let F43: f32 = f32(_globalUniforms.colorGreen.y * 43.0); 56*c8dee2aaSAndroid Build Coastguard Worker let F44: f32 = f32(_globalUniforms.colorGreen.y * 44.0); 57*c8dee2aaSAndroid Build Coastguard Worker const EQ: bool = true; 58*c8dee2aaSAndroid Build Coastguard Worker const NE: bool = false; 59*c8dee2aaSAndroid Build Coastguard Worker let _0_one: f32 = f32(_globalUniforms.colorGreen.x + 1.0); 60*c8dee2aaSAndroid Build Coastguard Worker var _1_a: array<f32, 3>; 61*c8dee2aaSAndroid Build Coastguard Worker _1_a[0] = F42; 62*c8dee2aaSAndroid Build Coastguard Worker _1_a[1] = ZM; 63*c8dee2aaSAndroid Build Coastguard Worker _1_a[2] = ZP; 64*c8dee2aaSAndroid Build Coastguard Worker var _2_b: array<f32, 3>; 65*c8dee2aaSAndroid Build Coastguard Worker _2_b[0] = F42 * _0_one; 66*c8dee2aaSAndroid Build Coastguard Worker _2_b[1] = ZM * _0_one; 67*c8dee2aaSAndroid Build Coastguard Worker _2_b[2] = ZP * _0_one; 68*c8dee2aaSAndroid Build Coastguard Worker var _skTemp2: vec4<f32>; 69*c8dee2aaSAndroid Build Coastguard Worker var _skTemp3: bool; 70*c8dee2aaSAndroid Build Coastguard Worker var _skTemp4: bool; 71*c8dee2aaSAndroid Build Coastguard Worker var _skTemp5: bool; 72*c8dee2aaSAndroid Build Coastguard Worker var _skTemp6: bool; 73*c8dee2aaSAndroid Build Coastguard Worker var _skTemp7: bool; 74*c8dee2aaSAndroid Build Coastguard Worker var _skTemp8: bool; 75*c8dee2aaSAndroid Build Coastguard Worker var _skTemp9: bool; 76*c8dee2aaSAndroid Build Coastguard Worker var _skTemp10: bool; 77*c8dee2aaSAndroid Build Coastguard Worker if EQ { 78*c8dee2aaSAndroid Build Coastguard Worker _skTemp10 = ((_1_a[0] == _2_b[0]) && (_1_a[1] == _2_b[1]) && (_1_a[2] == _2_b[2])); 79*c8dee2aaSAndroid Build Coastguard Worker } else { 80*c8dee2aaSAndroid Build Coastguard Worker _skTemp10 = ((_1_a[0] != _2_b[0]) || (_1_a[1] != _2_b[1]) || (_1_a[2] != _2_b[2])); 81*c8dee2aaSAndroid Build Coastguard Worker } 82*c8dee2aaSAndroid Build Coastguard Worker if _skTemp10 { 83*c8dee2aaSAndroid Build Coastguard Worker let _skTemp11 = test_same_arrays_bbfff(NE, F42, ZM, ZP); 84*c8dee2aaSAndroid Build Coastguard Worker _skTemp9 = !_skTemp11; 85*c8dee2aaSAndroid Build Coastguard Worker } else { 86*c8dee2aaSAndroid Build Coastguard Worker _skTemp9 = false; 87*c8dee2aaSAndroid Build Coastguard Worker } 88*c8dee2aaSAndroid Build Coastguard Worker if _skTemp9 { 89*c8dee2aaSAndroid Build Coastguard Worker let _skTemp12 = test_same_arrays_bbfff(NE, F42, NAN1, NAN2); 90*c8dee2aaSAndroid Build Coastguard Worker _skTemp8 = _skTemp12; 91*c8dee2aaSAndroid Build Coastguard Worker } else { 92*c8dee2aaSAndroid Build Coastguard Worker _skTemp8 = false; 93*c8dee2aaSAndroid Build Coastguard Worker } 94*c8dee2aaSAndroid Build Coastguard Worker if _skTemp8 { 95*c8dee2aaSAndroid Build Coastguard Worker let _skTemp13 = test_same_arrays_bbfff(EQ, F42, NAN1, NAN2); 96*c8dee2aaSAndroid Build Coastguard Worker _skTemp7 = !_skTemp13; 97*c8dee2aaSAndroid Build Coastguard Worker } else { 98*c8dee2aaSAndroid Build Coastguard Worker _skTemp7 = false; 99*c8dee2aaSAndroid Build Coastguard Worker } 100*c8dee2aaSAndroid Build Coastguard Worker if _skTemp7 { 101*c8dee2aaSAndroid Build Coastguard Worker let _skTemp14 = test_diff_arrays_bbfff(NE, F42, F43, F44); 102*c8dee2aaSAndroid Build Coastguard Worker _skTemp6 = _skTemp14; 103*c8dee2aaSAndroid Build Coastguard Worker } else { 104*c8dee2aaSAndroid Build Coastguard Worker _skTemp6 = false; 105*c8dee2aaSAndroid Build Coastguard Worker } 106*c8dee2aaSAndroid Build Coastguard Worker if _skTemp6 { 107*c8dee2aaSAndroid Build Coastguard Worker let _skTemp15 = test_diff_arrays_bbfff(EQ, F42, F43, F44); 108*c8dee2aaSAndroid Build Coastguard Worker _skTemp5 = !_skTemp15; 109*c8dee2aaSAndroid Build Coastguard Worker } else { 110*c8dee2aaSAndroid Build Coastguard Worker _skTemp5 = false; 111*c8dee2aaSAndroid Build Coastguard Worker } 112*c8dee2aaSAndroid Build Coastguard Worker if _skTemp5 { 113*c8dee2aaSAndroid Build Coastguard Worker let _skTemp16 = test_diff_arrays_bbfff(NE, NAN1, ZM, ZP); 114*c8dee2aaSAndroid Build Coastguard Worker _skTemp4 = _skTemp16; 115*c8dee2aaSAndroid Build Coastguard Worker } else { 116*c8dee2aaSAndroid Build Coastguard Worker _skTemp4 = false; 117*c8dee2aaSAndroid Build Coastguard Worker } 118*c8dee2aaSAndroid Build Coastguard Worker if _skTemp4 { 119*c8dee2aaSAndroid Build Coastguard Worker let _skTemp17 = test_diff_arrays_bbfff(EQ, NAN1, ZM, ZP); 120*c8dee2aaSAndroid Build Coastguard Worker _skTemp3 = !_skTemp17; 121*c8dee2aaSAndroid Build Coastguard Worker } else { 122*c8dee2aaSAndroid Build Coastguard Worker _skTemp3 = false; 123*c8dee2aaSAndroid Build Coastguard Worker } 124*c8dee2aaSAndroid Build Coastguard Worker if _skTemp3 { 125*c8dee2aaSAndroid Build Coastguard Worker _skTemp2 = _globalUniforms.colorGreen; 126*c8dee2aaSAndroid Build Coastguard Worker } else { 127*c8dee2aaSAndroid Build Coastguard Worker _skTemp2 = _globalUniforms.colorRed; 128*c8dee2aaSAndroid Build Coastguard Worker } 129*c8dee2aaSAndroid Build Coastguard Worker return vec4<f32>(_skTemp2); 130*c8dee2aaSAndroid Build Coastguard Worker } 131*c8dee2aaSAndroid Build Coastguard Worker} 132*c8dee2aaSAndroid Build Coastguard Worker@fragment fn main(@location(0) _coords: vec2<f32>) -> @location(0) vec4<f32> { 133*c8dee2aaSAndroid Build Coastguard Worker return _skslMain(_coords); 134*c8dee2aaSAndroid Build Coastguard Worker} 135