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