diagnostic(off, derivative_uniformity); diagnostic(off, chromium.unreachable_code); enable f16; struct FSOut { @location(0) sk_FragColor: vec4, }; struct _GlobalUniforms { colorGreen: vec4, colorRed: vec4, testArray: array<_skArrayElement_f, 5>, }; @group(0) @binding(0) var _globalUniforms : _GlobalUniforms; struct S { x: i32, y: i32, m: mat2x2, a: array, }; fn _skslMain(coords: vec2) -> vec4 { { const R_array: array = array(1.0, 2.0, 3.0, 4.0, 5.0); let s1: S = S(1, 2, mat2x2(1.0h, 0.0, 0.0, 1.0h), R_array); let s2: S = S(1, 2, mat2x2(1.0h, 0.0, 0.0, 1.0h), _skUnpacked__globalUniforms_testArray); const s3: S = S(1, 2, mat2x2(2.0h, 0.0, 0.0, 2.0h), array(1.0, 2.0, 3.0, 4.0, 5.0)); return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4(((s1.x == s2.x) && (s1.y == s2.y) && (all(s1.m[0] == s2.m[0]) && all(s1.m[1] == s2.m[1])) && ((s1.a[0] == s2.a[0]) && (s1.a[1] == s2.a[1]) && (s1.a[2] == s2.a[2]) && (s1.a[3] == s2.a[3]) && (s1.a[4] == s2.a[4]))) && ((s1.x != s3.x) || (s1.y != s3.y) || (any(s1.m[0] != s3.m[0]) || any(s1.m[1] != s3.m[1])) || ((s1.a[0] != s3.a[0]) || (s1.a[1] != s3.a[1]) || (s1.a[2] != s3.a[2]) || (s1.a[3] != s3.a[3]) || (s1.a[4] != s3.a[4]))))); } } @fragment fn main() -> FSOut { _skInitializePolyfilledUniforms(); var _stageOut: FSOut; _stageOut.sk_FragColor = _skslMain(/*fragcoord*/ vec2()); return _stageOut; } struct _skArrayElement_f { @align(16) e : f32 }; var _skUnpacked__globalUniforms_testArray: array; fn _skInitializePolyfilledUniforms() { _skUnpacked__globalUniforms_testArray = array(_globalUniforms.testArray[0].e, _globalUniforms.testArray[1].e, _globalUniforms.testArray[2].e, _globalUniforms.testArray[3].e, _globalUniforms.testArray[4].e); }