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 testMatrix3x3: mat3x3<f32>, 10 testMatrix4x4: mat4x4<f32>, 11}; 12@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms; 13fn test3x3_b() -> bool { 14 { 15 let matrix: mat3x3<f32> = _globalUniforms.testMatrix3x3; 16 var expected: vec3<f32> = vec3<f32>(1.0, 2.0, 3.0); 17 { 18 var index: i32 = 0; 19 loop { 20 { 21 if any(matrix[index] != expected) { 22 { 23 return false; 24 } 25 } 26 expected = expected + 3.0; 27 } 28 continuing { 29 index = index + i32(1); 30 break if index >= 3; 31 } 32 } 33 } 34 return true; 35 } 36} 37fn test4x4_b() -> bool { 38 { 39 let matrix: mat4x4<f32> = _globalUniforms.testMatrix4x4; 40 var expected: vec4<f32> = vec4<f32>(1.0, 2.0, 3.0, 4.0); 41 { 42 var index: i32 = 0; 43 loop { 44 { 45 if any(matrix[index] != expected) { 46 { 47 return false; 48 } 49 } 50 expected = expected + 4.0; 51 } 52 continuing { 53 index = index + i32(1); 54 break if index >= 4; 55 } 56 } 57 } 58 return true; 59 } 60} 61fn _skslMain(coords: vec2<f32>) -> vec4<f32> { 62 { 63 var _skTemp0: vec4<f32>; 64 var _skTemp1: bool; 65 let _skTemp2 = test3x3_b(); 66 if _skTemp2 { 67 let _skTemp3 = test4x4_b(); 68 _skTemp1 = _skTemp3; 69 } else { 70 _skTemp1 = false; 71 } 72 if _skTemp1 { 73 _skTemp0 = _globalUniforms.colorGreen; 74 } else { 75 _skTemp0 = _globalUniforms.colorRed; 76 } 77 return _skTemp0; 78 } 79} 80@fragment fn main() -> FSOut { 81 var _stageOut: FSOut; 82 _stageOut.sk_FragColor = _skslMain(/*fragcoord*/ vec2<f32>()); 83 return _stageOut; 84} 85