1diagnostic(off, derivative_uniformity); 2diagnostic(off, chromium.unreachable_code); 3struct FSOut { 4 @location(0) sk_FragColor: vec4<f32>, 5}; 6struct testBlock { 7 @size(16) s: f32, 8 @size(32) m: _skMatrix22, 9 @size(32) a: array<_skArrayElement_f, 2>, 10 am: array<_skArrayElement_f22, 2>, 11}; 12@group(0) @binding(123) var<uniform> test : array<testBlock, 2>; 13fn _skslMain(_stageOut: ptr<function, FSOut>) { 14 { 15 (*_stageOut).sk_FragColor = vec4<f32>(f32(test[0].s), f32(_skUnpacked_test_m[1][1].x), f32(_skUnpacked_test_a[0][1]), f32(_skUnpacked_test_am[1][1][0].y)); 16 } 17} 18@fragment fn main() -> FSOut { 19 _skInitializePolyfilledUniforms(); 20 var _stageOut: FSOut; 21 _skslMain(&_stageOut); 22 return _stageOut; 23} 24struct _skArrayElement_f { 25 @size(16) e : f32 26}; 27var<private> _skUnpacked_test_a: array<array<f32, 2>, 2>; 28struct _skArrayElement_f22 { 29 e : _skMatrix22 30}; 31struct _skRow2 { 32 @size(16) r : vec2<f32> 33}; 34struct _skMatrix22 { 35 c : array<_skRow2, 2> 36}; 37var<private> _skUnpacked_test_am: array<array<mat2x2<f32>, 2>, 2>; 38var<private> _skUnpacked_test_m: array<mat2x2<f32>, 2>; 39fn _skInitializePolyfilledUniforms() { 40 _skUnpacked_test_a[0] = array<f32, 2>(test[0].a[0].e, test[0].a[1].e); 41 _skUnpacked_test_a[1] = array<f32, 2>(test[1].a[0].e, test[1].a[1].e); 42 _skUnpacked_test_am[0] = array<mat2x2<f32>, 2>(mat2x2<f32>(test[0].am[0].e.c[0].r, test[0].am[0].e.c[1].r), mat2x2<f32>(test[0].am[1].e.c[0].r, test[0].am[1].e.c[1].r)); 43 _skUnpacked_test_am[1] = array<mat2x2<f32>, 2>(mat2x2<f32>(test[1].am[0].e.c[0].r, test[1].am[0].e.c[1].r), mat2x2<f32>(test[1].am[1].e.c[0].r, test[1].am[1].e.c[1].r)); 44 _skUnpacked_test_m[0] = mat2x2<f32>(test[0].m.c[0].r, test[0].m.c[1].r); 45 _skUnpacked_test_m[1] = mat2x2<f32>(test[1].m.c[0].r, test[1].m.c[1].r); 46} 47