1diagnostic(off, derivative_uniformity); 2diagnostic(off, chromium.unreachable_code); 3struct FSOut { 4 @location(0) sk_FragColor: vec4<f32>, 5}; 6struct _GlobalUniforms { 7 colorGreen: vec4<f32>, 8 colorRed: vec4<f32>, 9}; 10@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms; 11fn switch_with_continue_in_loop_bi(x: i32) -> bool { 12 { 13 var val: i32 = 0; 14 switch x { 15 case 1, default { 16 var _skTemp0: bool = false; 17 if x == 1 { 18 { 19 var i: i32 = 0; 20 loop { 21 { 22 val = val + i32(1); 23 continue; 24 } 25 continuing { 26 i = i + i32(1); 27 break if i >= 10; 28 } 29 } 30 } 31 // fallthrough 32 } 33 val = val + i32(1); 34 } 35 } 36 return val == 11; 37 } 38} 39fn loop_with_break_in_switch_bi(x: i32) -> bool { 40 { 41 var val: i32 = 0; 42 { 43 var i: i32 = 0; 44 loop { 45 { 46 switch x { 47 case 1 { 48 val = val + i32(1); 49 break; 50 } 51 case default { 52 return false; 53 } 54 } 55 val = val + i32(1); 56 } 57 continuing { 58 i = i + i32(1); 59 break if i >= 10; 60 } 61 } 62 } 63 return val == 20; 64 } 65} 66fn _skslMain(coords: vec2<f32>) -> vec4<f32> { 67 { 68 let x: i32 = i32(_globalUniforms.colorGreen.y); 69 var _0_val: i32 = 0; 70 switch x { 71 case 1, default { 72 var _skTemp1: bool = false; 73 if x == 1 { 74 { 75 var _1_i: i32 = 0; 76 loop { 77 { 78 _0_val = _0_val + i32(1); 79 break; 80 } 81 continuing { 82 _1_i = _1_i + i32(1); 83 break if _1_i >= 10; 84 } 85 } 86 } 87 // fallthrough 88 } 89 _0_val = _0_val + i32(1); 90 } 91 } 92 var _skTemp2: vec4<f32>; 93 var _skTemp3: bool; 94 var _skTemp4: bool; 95 if _0_val == 2 { 96 let _skTemp5 = switch_with_continue_in_loop_bi(x); 97 _skTemp4 = _skTemp5; 98 } else { 99 _skTemp4 = false; 100 } 101 if _skTemp4 { 102 let _skTemp6 = loop_with_break_in_switch_bi(x); 103 _skTemp3 = _skTemp6; 104 } else { 105 _skTemp3 = false; 106 } 107 if _skTemp3 { 108 _skTemp2 = _globalUniforms.colorGreen; 109 } else { 110 _skTemp2 = _globalUniforms.colorRed; 111 } 112 return _skTemp2; 113 } 114} 115@fragment fn main() -> FSOut { 116 var _stageOut: FSOut; 117 _stageOut.sk_FragColor = _skslMain(/*fragcoord*/ vec2<f32>()); 118 return _stageOut; 119} 120