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