xref: /aosp_15_r20/external/skia/tests/sksl/wgsl/UniformMatrices.wgsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workerdiagnostic(off, derivative_uniformity);
2*c8dee2aaSAndroid Build Coastguard Workerdiagnostic(off, chromium.unreachable_code);
3*c8dee2aaSAndroid Build Coastguard Workerstruct FSOut {
4*c8dee2aaSAndroid Build Coastguard Worker  @location(0) sk_FragColor: vec4<f32>,
5*c8dee2aaSAndroid Build Coastguard Worker};
6*c8dee2aaSAndroid Build Coastguard Workerstruct UniformBuffer {
7*c8dee2aaSAndroid Build Coastguard Worker  u22: _skMatrix22,
8*c8dee2aaSAndroid Build Coastguard Worker  u23: mat2x3<f32>,
9*c8dee2aaSAndroid Build Coastguard Worker  u24: mat2x4<f32>,
10*c8dee2aaSAndroid Build Coastguard Worker  R_u32: _skMatrix32,
11*c8dee2aaSAndroid Build Coastguard Worker  u33: mat3x3<f32>,
12*c8dee2aaSAndroid Build Coastguard Worker  u34: mat3x4<f32>,
13*c8dee2aaSAndroid Build Coastguard Worker  u42: _skMatrix42,
14*c8dee2aaSAndroid Build Coastguard Worker  u43: mat4x3<f32>,
15*c8dee2aaSAndroid Build Coastguard Worker  u44: mat4x4<f32>,
16*c8dee2aaSAndroid Build Coastguard Worker  au22: array<_skArrayElement_f22, 3>,
17*c8dee2aaSAndroid Build Coastguard Worker  au23: array<mat2x3<f32>, 3>,
18*c8dee2aaSAndroid Build Coastguard Worker  au24: array<mat2x4<f32>, 3>,
19*c8dee2aaSAndroid Build Coastguard Worker  au32: array<_skArrayElement_f32, 3>,
20*c8dee2aaSAndroid Build Coastguard Worker  au33: array<mat3x3<f32>, 3>,
21*c8dee2aaSAndroid Build Coastguard Worker  au34: array<mat3x4<f32>, 3>,
22*c8dee2aaSAndroid Build Coastguard Worker  au42: array<_skArrayElement_f42, 3>,
23*c8dee2aaSAndroid Build Coastguard Worker  au43: array<mat4x3<f32>, 3>,
24*c8dee2aaSAndroid Build Coastguard Worker  au44: array<mat4x4<f32>, 3>,
25*c8dee2aaSAndroid Build Coastguard Worker};
26*c8dee2aaSAndroid Build Coastguard Worker@group(0) @binding(1) var<uniform> _uniform0 : UniformBuffer;
27*c8dee2aaSAndroid Build Coastguard Workerstruct StorageBuffer {
28*c8dee2aaSAndroid Build Coastguard Worker  s22: _skMatrix22,
29*c8dee2aaSAndroid Build Coastguard Worker  s23: mat2x3<f32>,
30*c8dee2aaSAndroid Build Coastguard Worker  s24: mat2x4<f32>,
31*c8dee2aaSAndroid Build Coastguard Worker  s32: _skMatrix32,
32*c8dee2aaSAndroid Build Coastguard Worker  s33: mat3x3<f32>,
33*c8dee2aaSAndroid Build Coastguard Worker  s34: mat3x4<f32>,
34*c8dee2aaSAndroid Build Coastguard Worker  s42: _skMatrix42,
35*c8dee2aaSAndroid Build Coastguard Worker  s43: mat4x3<f32>,
36*c8dee2aaSAndroid Build Coastguard Worker  s44: mat4x4<f32>,
37*c8dee2aaSAndroid Build Coastguard Worker  as22: array<_skArrayElement_f22, 3>,
38*c8dee2aaSAndroid Build Coastguard Worker  as23: array<mat2x3<f32>, 3>,
39*c8dee2aaSAndroid Build Coastguard Worker  as24: array<mat2x4<f32>, 3>,
40*c8dee2aaSAndroid Build Coastguard Worker  as32: array<_skArrayElement_f32, 3>,
41*c8dee2aaSAndroid Build Coastguard Worker  as33: array<mat3x3<f32>, 3>,
42*c8dee2aaSAndroid Build Coastguard Worker  as34: array<mat3x4<f32>, 3>,
43*c8dee2aaSAndroid Build Coastguard Worker  as42: array<_skArrayElement_f42, 3>,
44*c8dee2aaSAndroid Build Coastguard Worker  as43: array<mat4x3<f32>, 3>,
45*c8dee2aaSAndroid Build Coastguard Worker  as44: array<mat4x4<f32>, 3>,
46*c8dee2aaSAndroid Build Coastguard Worker};
47*c8dee2aaSAndroid Build Coastguard Worker@group(0) @binding(2) var<storage, read_write> _storage1 : StorageBuffer;
48*c8dee2aaSAndroid Build Coastguard Workerfn _skslMain() -> vec4<f32> {
49*c8dee2aaSAndroid Build Coastguard Worker  {
50*c8dee2aaSAndroid Build Coastguard Worker    let value: f32 = ((((((((((((((((((((((((((((((((((_skUnpacked__uniform0_u22[0].x + _uniform0.u23[0].x) + _uniform0.u24[0].x) + _skUnpacked__uniform0_R_u32[0].x) + _uniform0.u33[0].x) + _uniform0.u34[0].x) + _skUnpacked__uniform0_u42[0].x) + _uniform0.u43[0].x) + _uniform0.au44[0][0].x) + _skUnpacked__uniform0_au22[0][0].x) + _uniform0.au23[0][0].x) + _uniform0.au24[0][0].x) + _skUnpacked__uniform0_au32[0][0].x) + _uniform0.au33[0][0].x) + _uniform0.au34[0][0].x) + _skUnpacked__uniform0_au42[0][0].x) + _uniform0.au43[0][0].x) + _uniform0.au44[0][0].x) + _skUnpacked__storage1_s22[0].x) + _storage1.s23[0].x) + _storage1.s24[0].x) + _skUnpacked__storage1_s32[0].x) + _storage1.s33[0].x) + _storage1.s34[0].x) + _skUnpacked__storage1_s42[0].x) + _storage1.s43[0].x) + _storage1.as44[0][0].x) + _skUnpacked__storage1_as22[0][0].x) + _storage1.as23[0][0].x) + _storage1.as24[0][0].x) + _skUnpacked__storage1_as32[0][0].x) + _storage1.as33[0][0].x) + _storage1.as34[0][0].x) + _skUnpacked__storage1_as42[0][0].x) + _storage1.as43[0][0].x) + _storage1.as44[0][0].x;
51*c8dee2aaSAndroid Build Coastguard Worker    return vec4<f32>(f32(value));
52*c8dee2aaSAndroid Build Coastguard Worker  }
53*c8dee2aaSAndroid Build Coastguard Worker}
54*c8dee2aaSAndroid Build Coastguard Worker@fragment fn main() -> FSOut {
55*c8dee2aaSAndroid Build Coastguard Worker  _skInitializePolyfilledUniforms();
56*c8dee2aaSAndroid Build Coastguard Worker  var _stageOut: FSOut;
57*c8dee2aaSAndroid Build Coastguard Worker  _stageOut.sk_FragColor = _skslMain();
58*c8dee2aaSAndroid Build Coastguard Worker  return _stageOut;
59*c8dee2aaSAndroid Build Coastguard Worker}
60*c8dee2aaSAndroid Build Coastguard Workerstruct _skArrayElement_f22 {
61*c8dee2aaSAndroid Build Coastguard Worker  e : _skMatrix22
62*c8dee2aaSAndroid Build Coastguard Worker};
63*c8dee2aaSAndroid Build Coastguard Workerstruct _skRow2 {
64*c8dee2aaSAndroid Build Coastguard Worker  @size(16) r : vec2<f32>
65*c8dee2aaSAndroid Build Coastguard Worker};
66*c8dee2aaSAndroid Build Coastguard Workerstruct _skMatrix22 {
67*c8dee2aaSAndroid Build Coastguard Worker  c : array<_skRow2, 2>
68*c8dee2aaSAndroid Build Coastguard Worker};
69*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__storage1_as22: array<mat2x2<f32>, 3>;
70*c8dee2aaSAndroid Build Coastguard Workerstruct _skArrayElement_f32 {
71*c8dee2aaSAndroid Build Coastguard Worker  e : _skMatrix32
72*c8dee2aaSAndroid Build Coastguard Worker};
73*c8dee2aaSAndroid Build Coastguard Workerstruct _skMatrix32 {
74*c8dee2aaSAndroid Build Coastguard Worker  c : array<_skRow2, 3>
75*c8dee2aaSAndroid Build Coastguard Worker};
76*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__storage1_as32: array<mat3x2<f32>, 3>;
77*c8dee2aaSAndroid Build Coastguard Workerstruct _skArrayElement_f42 {
78*c8dee2aaSAndroid Build Coastguard Worker  e : _skMatrix42
79*c8dee2aaSAndroid Build Coastguard Worker};
80*c8dee2aaSAndroid Build Coastguard Workerstruct _skMatrix42 {
81*c8dee2aaSAndroid Build Coastguard Worker  c : array<_skRow2, 4>
82*c8dee2aaSAndroid Build Coastguard Worker};
83*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__storage1_as42: array<mat4x2<f32>, 3>;
84*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__storage1_s22: mat2x2<f32>;
85*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__storage1_s32: mat3x2<f32>;
86*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__storage1_s42: mat4x2<f32>;
87*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__uniform0_R_u32: mat3x2<f32>;
88*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__uniform0_au22: array<mat2x2<f32>, 3>;
89*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__uniform0_au32: array<mat3x2<f32>, 3>;
90*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__uniform0_au42: array<mat4x2<f32>, 3>;
91*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__uniform0_u22: mat2x2<f32>;
92*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__uniform0_u42: mat4x2<f32>;
93*c8dee2aaSAndroid Build Coastguard Workerfn _skInitializePolyfilledUniforms() {
94*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__storage1_as22 = array<mat2x2<f32>, 3>(mat2x2<f32>(_storage1.as22[0].e.c[0].r, _storage1.as22[0].e.c[1].r), mat2x2<f32>(_storage1.as22[1].e.c[0].r, _storage1.as22[1].e.c[1].r), mat2x2<f32>(_storage1.as22[2].e.c[0].r, _storage1.as22[2].e.c[1].r));
95*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__storage1_as32 = array<mat3x2<f32>, 3>(mat3x2<f32>(_storage1.as32[0].e.c[0].r, _storage1.as32[0].e.c[1].r, _storage1.as32[0].e.c[2].r), mat3x2<f32>(_storage1.as32[1].e.c[0].r, _storage1.as32[1].e.c[1].r, _storage1.as32[1].e.c[2].r), mat3x2<f32>(_storage1.as32[2].e.c[0].r, _storage1.as32[2].e.c[1].r, _storage1.as32[2].e.c[2].r));
96*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__storage1_as42 = array<mat4x2<f32>, 3>(mat4x2<f32>(_storage1.as42[0].e.c[0].r, _storage1.as42[0].e.c[1].r, _storage1.as42[0].e.c[2].r, _storage1.as42[0].e.c[3].r), mat4x2<f32>(_storage1.as42[1].e.c[0].r, _storage1.as42[1].e.c[1].r, _storage1.as42[1].e.c[2].r, _storage1.as42[1].e.c[3].r), mat4x2<f32>(_storage1.as42[2].e.c[0].r, _storage1.as42[2].e.c[1].r, _storage1.as42[2].e.c[2].r, _storage1.as42[2].e.c[3].r));
97*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__storage1_s22 = mat2x2<f32>(_storage1.s22.c[0].r, _storage1.s22.c[1].r);
98*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__storage1_s32 = mat3x2<f32>(_storage1.s32.c[0].r, _storage1.s32.c[1].r, _storage1.s32.c[2].r);
99*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__storage1_s42 = mat4x2<f32>(_storage1.s42.c[0].r, _storage1.s42.c[1].r, _storage1.s42.c[2].r, _storage1.s42.c[3].r);
100*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__uniform0_R_u32 = mat3x2<f32>(_uniform0.R_u32.c[0].r, _uniform0.R_u32.c[1].r, _uniform0.R_u32.c[2].r);
101*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__uniform0_au22 = array<mat2x2<f32>, 3>(mat2x2<f32>(_uniform0.au22[0].e.c[0].r, _uniform0.au22[0].e.c[1].r), mat2x2<f32>(_uniform0.au22[1].e.c[0].r, _uniform0.au22[1].e.c[1].r), mat2x2<f32>(_uniform0.au22[2].e.c[0].r, _uniform0.au22[2].e.c[1].r));
102*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__uniform0_au32 = array<mat3x2<f32>, 3>(mat3x2<f32>(_uniform0.au32[0].e.c[0].r, _uniform0.au32[0].e.c[1].r, _uniform0.au32[0].e.c[2].r), mat3x2<f32>(_uniform0.au32[1].e.c[0].r, _uniform0.au32[1].e.c[1].r, _uniform0.au32[1].e.c[2].r), mat3x2<f32>(_uniform0.au32[2].e.c[0].r, _uniform0.au32[2].e.c[1].r, _uniform0.au32[2].e.c[2].r));
103*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__uniform0_au42 = array<mat4x2<f32>, 3>(mat4x2<f32>(_uniform0.au42[0].e.c[0].r, _uniform0.au42[0].e.c[1].r, _uniform0.au42[0].e.c[2].r, _uniform0.au42[0].e.c[3].r), mat4x2<f32>(_uniform0.au42[1].e.c[0].r, _uniform0.au42[1].e.c[1].r, _uniform0.au42[1].e.c[2].r, _uniform0.au42[1].e.c[3].r), mat4x2<f32>(_uniform0.au42[2].e.c[0].r, _uniform0.au42[2].e.c[1].r, _uniform0.au42[2].e.c[2].r, _uniform0.au42[2].e.c[3].r));
104*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__uniform0_u22 = mat2x2<f32>(_uniform0.u22.c[0].r, _uniform0.u22.c[1].r);
105*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__uniform0_u42 = mat4x2<f32>(_uniform0.u42.c[0].r, _uniform0.u42.c[1].r, _uniform0.u42.c[2].r, _uniform0.u42.c[3].r);
106*c8dee2aaSAndroid Build Coastguard Worker}
107