xref: /aosp_15_r20/external/skia/tests/sksl/wgsl/UniformArrays.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  uf: array<_skArrayElement_f, 3>,
8*c8dee2aaSAndroid Build Coastguard Worker  uf2: array<_skArrayElement_f2, 3>,
9*c8dee2aaSAndroid Build Coastguard Worker  uf3: array<_skArrayElement_f3, 3>,
10*c8dee2aaSAndroid Build Coastguard Worker  uf4: array<vec4<f32>, 3>,
11*c8dee2aaSAndroid Build Coastguard Worker  uh: array<_skArrayElement_h, 3>,
12*c8dee2aaSAndroid Build Coastguard Worker  uh2: array<_skArrayElement_h2, 3>,
13*c8dee2aaSAndroid Build Coastguard Worker  uh3: array<_skArrayElement_h3, 3>,
14*c8dee2aaSAndroid Build Coastguard Worker  uh4: array<vec4<f32>, 3>,
15*c8dee2aaSAndroid Build Coastguard Worker  ui: array<_skArrayElement_i, 3>,
16*c8dee2aaSAndroid Build Coastguard Worker  ui2: array<_skArrayElement_i2, 3>,
17*c8dee2aaSAndroid Build Coastguard Worker  ui3: array<_skArrayElement_i3, 3>,
18*c8dee2aaSAndroid Build Coastguard Worker  ui4: array<vec4<i32>, 3>,
19*c8dee2aaSAndroid Build Coastguard Worker};
20*c8dee2aaSAndroid Build Coastguard Worker@group(0) @binding(1) var<uniform> _uniform0 : UniformBuffer;
21*c8dee2aaSAndroid Build Coastguard Workerstruct StorageBuffer {
22*c8dee2aaSAndroid Build Coastguard Worker  sf: array<_skArrayElement_f, 4>,
23*c8dee2aaSAndroid Build Coastguard Worker  sf2: array<_skArrayElement_f2, 4>,
24*c8dee2aaSAndroid Build Coastguard Worker  sf3: array<_skArrayElement_f3, 4>,
25*c8dee2aaSAndroid Build Coastguard Worker  sf4: array<vec4<f32>, 4>,
26*c8dee2aaSAndroid Build Coastguard Worker  sh: array<_skArrayElement_h, 4>,
27*c8dee2aaSAndroid Build Coastguard Worker  sh2: array<_skArrayElement_h2, 4>,
28*c8dee2aaSAndroid Build Coastguard Worker  sh3: array<_skArrayElement_h3, 4>,
29*c8dee2aaSAndroid Build Coastguard Worker  sh4: array<vec4<f32>, 4>,
30*c8dee2aaSAndroid Build Coastguard Worker  si: array<_skArrayElement_i, 4>,
31*c8dee2aaSAndroid Build Coastguard Worker  si2: array<_skArrayElement_i2, 4>,
32*c8dee2aaSAndroid Build Coastguard Worker  si3: array<_skArrayElement_i3, 4>,
33*c8dee2aaSAndroid Build Coastguard Worker  si4: array<vec4<i32>, 4>,
34*c8dee2aaSAndroid Build Coastguard Worker};
35*c8dee2aaSAndroid Build Coastguard Worker@group(0) @binding(2) var<storage, read_write> _storage1 : StorageBuffer;
36*c8dee2aaSAndroid Build Coastguard Workerfn _skslMain() -> vec4<f32> {
37*c8dee2aaSAndroid Build Coastguard Worker  {
38*c8dee2aaSAndroid Build Coastguard Worker    let value: f32 = ((((((((((((((((((((((_skUnpacked__uniform0_uf[1] + _skUnpacked__uniform0_uf2[1].x) + _skUnpacked__uniform0_uf3[1].x) + _uniform0.uf4[1].x) + f32(_skUnpacked__uniform0_uh[1])) + f32(_skUnpacked__uniform0_uh2[1].x)) + f32(_skUnpacked__uniform0_uh3[1].x)) + f32(_uniform0.uh4[1].x)) + f32(_skUnpacked__uniform0_ui[1])) + f32(_skUnpacked__uniform0_ui2[1].x)) + f32(_skUnpacked__uniform0_ui3[1].x)) + f32(_uniform0.ui4[1].x)) + _skUnpacked__storage1_sf[1]) + _skUnpacked__storage1_sf2[1].x) + _skUnpacked__storage1_sf3[1].x) + _storage1.sf4[1].x) + f32(_skUnpacked__storage1_sh[1])) + f32(_skUnpacked__storage1_sh2[1].x)) + f32(_skUnpacked__storage1_sh3[1].x)) + f32(_storage1.sh4[1].x)) + f32(_skUnpacked__storage1_si[1])) + f32(_skUnpacked__storage1_si2[1].x)) + f32(_skUnpacked__storage1_si3[1].x)) + f32(_storage1.si4[1].x);
39*c8dee2aaSAndroid Build Coastguard Worker    return vec4<f32>(f32(value));
40*c8dee2aaSAndroid Build Coastguard Worker  }
41*c8dee2aaSAndroid Build Coastguard Worker}
42*c8dee2aaSAndroid Build Coastguard Worker@fragment fn main() -> FSOut {
43*c8dee2aaSAndroid Build Coastguard Worker  _skInitializePolyfilledUniforms();
44*c8dee2aaSAndroid Build Coastguard Worker  var _stageOut: FSOut;
45*c8dee2aaSAndroid Build Coastguard Worker  _stageOut.sk_FragColor = _skslMain();
46*c8dee2aaSAndroid Build Coastguard Worker  return _stageOut;
47*c8dee2aaSAndroid Build Coastguard Worker}
48*c8dee2aaSAndroid Build Coastguard Workerstruct _skArrayElement_f {
49*c8dee2aaSAndroid Build Coastguard Worker  @size(16) e : f32
50*c8dee2aaSAndroid Build Coastguard Worker};
51*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__storage1_sf: array<f32, 4>;
52*c8dee2aaSAndroid Build Coastguard Workerstruct _skArrayElement_f2 {
53*c8dee2aaSAndroid Build Coastguard Worker  @size(16) e : vec2<f32>
54*c8dee2aaSAndroid Build Coastguard Worker};
55*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__storage1_sf2: array<vec2<f32>, 4>;
56*c8dee2aaSAndroid Build Coastguard Workerstruct _skArrayElement_f3 {
57*c8dee2aaSAndroid Build Coastguard Worker  @size(16) e : vec3<f32>
58*c8dee2aaSAndroid Build Coastguard Worker};
59*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__storage1_sf3: array<vec3<f32>, 4>;
60*c8dee2aaSAndroid Build Coastguard Workerstruct _skArrayElement_h {
61*c8dee2aaSAndroid Build Coastguard Worker  @size(16) e : f32
62*c8dee2aaSAndroid Build Coastguard Worker};
63*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__storage1_sh: array<f32, 4>;
64*c8dee2aaSAndroid Build Coastguard Workerstruct _skArrayElement_h2 {
65*c8dee2aaSAndroid Build Coastguard Worker  @size(16) e : vec2<f32>
66*c8dee2aaSAndroid Build Coastguard Worker};
67*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__storage1_sh2: array<vec2<f32>, 4>;
68*c8dee2aaSAndroid Build Coastguard Workerstruct _skArrayElement_h3 {
69*c8dee2aaSAndroid Build Coastguard Worker  @size(16) e : vec3<f32>
70*c8dee2aaSAndroid Build Coastguard Worker};
71*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__storage1_sh3: array<vec3<f32>, 4>;
72*c8dee2aaSAndroid Build Coastguard Workerstruct _skArrayElement_i {
73*c8dee2aaSAndroid Build Coastguard Worker  @size(16) e : i32
74*c8dee2aaSAndroid Build Coastguard Worker};
75*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__storage1_si: array<i32, 4>;
76*c8dee2aaSAndroid Build Coastguard Workerstruct _skArrayElement_i2 {
77*c8dee2aaSAndroid Build Coastguard Worker  @size(16) e : vec2<i32>
78*c8dee2aaSAndroid Build Coastguard Worker};
79*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__storage1_si2: array<vec2<i32>, 4>;
80*c8dee2aaSAndroid Build Coastguard Workerstruct _skArrayElement_i3 {
81*c8dee2aaSAndroid Build Coastguard Worker  @size(16) e : vec3<i32>
82*c8dee2aaSAndroid Build Coastguard Worker};
83*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__storage1_si3: array<vec3<i32>, 4>;
84*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__uniform0_uf: array<f32, 3>;
85*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__uniform0_uf2: array<vec2<f32>, 3>;
86*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__uniform0_uf3: array<vec3<f32>, 3>;
87*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__uniform0_uh: array<f32, 3>;
88*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__uniform0_uh2: array<vec2<f32>, 3>;
89*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__uniform0_uh3: array<vec3<f32>, 3>;
90*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__uniform0_ui: array<i32, 3>;
91*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__uniform0_ui2: array<vec2<i32>, 3>;
92*c8dee2aaSAndroid Build Coastguard Workervar<private> _skUnpacked__uniform0_ui3: array<vec3<i32>, 3>;
93*c8dee2aaSAndroid Build Coastguard Workerfn _skInitializePolyfilledUniforms() {
94*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__storage1_sf = array<f32, 4>(_storage1.sf[0].e, _storage1.sf[1].e, _storage1.sf[2].e, _storage1.sf[3].e);
95*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__storage1_sf2 = array<vec2<f32>, 4>(_storage1.sf2[0].e, _storage1.sf2[1].e, _storage1.sf2[2].e, _storage1.sf2[3].e);
96*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__storage1_sf3 = array<vec3<f32>, 4>(_storage1.sf3[0].e, _storage1.sf3[1].e, _storage1.sf3[2].e, _storage1.sf3[3].e);
97*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__storage1_sh = array<f32, 4>(_storage1.sh[0].e, _storage1.sh[1].e, _storage1.sh[2].e, _storage1.sh[3].e);
98*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__storage1_sh2 = array<vec2<f32>, 4>(_storage1.sh2[0].e, _storage1.sh2[1].e, _storage1.sh2[2].e, _storage1.sh2[3].e);
99*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__storage1_sh3 = array<vec3<f32>, 4>(_storage1.sh3[0].e, _storage1.sh3[1].e, _storage1.sh3[2].e, _storage1.sh3[3].e);
100*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__storage1_si = array<i32, 4>(_storage1.si[0].e, _storage1.si[1].e, _storage1.si[2].e, _storage1.si[3].e);
101*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__storage1_si2 = array<vec2<i32>, 4>(_storage1.si2[0].e, _storage1.si2[1].e, _storage1.si2[2].e, _storage1.si2[3].e);
102*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__storage1_si3 = array<vec3<i32>, 4>(_storage1.si3[0].e, _storage1.si3[1].e, _storage1.si3[2].e, _storage1.si3[3].e);
103*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__uniform0_uf = array<f32, 3>(_uniform0.uf[0].e, _uniform0.uf[1].e, _uniform0.uf[2].e);
104*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__uniform0_uf2 = array<vec2<f32>, 3>(_uniform0.uf2[0].e, _uniform0.uf2[1].e, _uniform0.uf2[2].e);
105*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__uniform0_uf3 = array<vec3<f32>, 3>(_uniform0.uf3[0].e, _uniform0.uf3[1].e, _uniform0.uf3[2].e);
106*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__uniform0_uh = array<f32, 3>(_uniform0.uh[0].e, _uniform0.uh[1].e, _uniform0.uh[2].e);
107*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__uniform0_uh2 = array<vec2<f32>, 3>(_uniform0.uh2[0].e, _uniform0.uh2[1].e, _uniform0.uh2[2].e);
108*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__uniform0_uh3 = array<vec3<f32>, 3>(_uniform0.uh3[0].e, _uniform0.uh3[1].e, _uniform0.uh3[2].e);
109*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__uniform0_ui = array<i32, 3>(_uniform0.ui[0].e, _uniform0.ui[1].e, _uniform0.ui[2].e);
110*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__uniform0_ui2 = array<vec2<i32>, 3>(_uniform0.ui2[0].e, _uniform0.ui2[1].e, _uniform0.ui2[2].e);
111*c8dee2aaSAndroid Build Coastguard Worker  _skUnpacked__uniform0_ui3 = array<vec3<i32>, 3>(_uniform0.ui3[0].e, _uniform0.ui3[1].e, _uniform0.ui3[2].e);
112*c8dee2aaSAndroid Build Coastguard Worker}
113