xref: /aosp_15_r20/external/skia/tests/sksl/shared/OutParams.wgsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1diagnostic(off, derivative_uniformity);
2diagnostic(off, chromium.unreachable_code);
3struct FSOut {
4  @location(0) sk_FragColor: vec4<f32>,
5};
6struct _GlobalUniforms {
7  colorGreen: vec4<f32>,
8  colorRed: vec4<f32>,
9  colorWhite: vec4<f32>,
10};
11@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms;
12fn out_half_vh(v: ptr<function, f32>) {
13  {
14    (*v) = _globalUniforms.colorWhite.x;
15  }
16}
17fn out_half2_vh2(v: ptr<function, vec2<f32>>) {
18  {
19    (*v) = vec2<f32>(_globalUniforms.colorWhite.y);
20  }
21}
22fn out_half3_vh3(v: ptr<function, vec3<f32>>) {
23  {
24    (*v) = vec3<f32>(_globalUniforms.colorWhite.z);
25  }
26}
27fn out_half4_vh4(v: ptr<function, vec4<f32>>) {
28  {
29    (*v) = vec4<f32>(_globalUniforms.colorWhite.w);
30  }
31}
32fn out_half2x2_vh22(v: ptr<function, mat2x2<f32>>) {
33  {
34    let _skTemp0 = _globalUniforms.colorWhite.x;
35    (*v) = mat2x2<f32>(_skTemp0, 0.0, 0.0, _skTemp0);
36  }
37}
38fn out_half3x3_vh33(v: ptr<function, mat3x3<f32>>) {
39  {
40    let _skTemp1 = _globalUniforms.colorWhite.y;
41    (*v) = mat3x3<f32>(_skTemp1, 0.0, 0.0, 0.0, _skTemp1, 0.0, 0.0, 0.0, _skTemp1);
42  }
43}
44fn out_half4x4_vh44(v: ptr<function, mat4x4<f32>>) {
45  {
46    let _skTemp2 = _globalUniforms.colorWhite.z;
47    (*v) = mat4x4<f32>(_skTemp2, 0.0, 0.0, 0.0, 0.0, _skTemp2, 0.0, 0.0, 0.0, 0.0, _skTemp2, 0.0, 0.0, 0.0, 0.0, _skTemp2);
48  }
49}
50fn out_int_vi(v: ptr<function, i32>) {
51  {
52    (*v) = i32(_globalUniforms.colorWhite.x);
53  }
54}
55fn out_int2_vi2(v: ptr<function, vec2<i32>>) {
56  {
57    (*v) = vec2<i32>(i32(_globalUniforms.colorWhite.y));
58  }
59}
60fn out_int3_vi3(v: ptr<function, vec3<i32>>) {
61  {
62    (*v) = vec3<i32>(i32(_globalUniforms.colorWhite.z));
63  }
64}
65fn out_int4_vi4(v: ptr<function, vec4<i32>>) {
66  {
67    (*v) = vec4<i32>(i32(_globalUniforms.colorWhite.w));
68  }
69}
70fn out_float_vf(v: ptr<function, f32>) {
71  {
72    (*v) = f32(_globalUniforms.colorWhite.x);
73  }
74}
75fn out_float2_vf2(v: ptr<function, vec2<f32>>) {
76  {
77    (*v) = vec2<f32>(f32(_globalUniforms.colorWhite.y));
78  }
79}
80fn out_float3_vf3(v: ptr<function, vec3<f32>>) {
81  {
82    (*v) = vec3<f32>(f32(_globalUniforms.colorWhite.z));
83  }
84}
85fn out_float4_vf4(v: ptr<function, vec4<f32>>) {
86  {
87    (*v) = vec4<f32>(f32(_globalUniforms.colorWhite.w));
88  }
89}
90fn out_float2x2_vf22(v: ptr<function, mat2x2<f32>>) {
91  {
92    let _skTemp3 = f32(_globalUniforms.colorWhite.x);
93    (*v) = mat2x2<f32>(_skTemp3, 0.0, 0.0, _skTemp3);
94  }
95}
96fn out_float3x3_vf33(v: ptr<function, mat3x3<f32>>) {
97  {
98    let _skTemp4 = f32(_globalUniforms.colorWhite.y);
99    (*v) = mat3x3<f32>(_skTemp4, 0.0, 0.0, 0.0, _skTemp4, 0.0, 0.0, 0.0, _skTemp4);
100  }
101}
102fn out_float4x4_vf44(v: ptr<function, mat4x4<f32>>) {
103  {
104    let _skTemp5 = f32(_globalUniforms.colorWhite.z);
105    (*v) = mat4x4<f32>(_skTemp5, 0.0, 0.0, 0.0, 0.0, _skTemp5, 0.0, 0.0, 0.0, 0.0, _skTemp5, 0.0, 0.0, 0.0, 0.0, _skTemp5);
106  }
107}
108fn out_bool_vb(v: ptr<function, bool>) {
109  {
110    (*v) = bool(_globalUniforms.colorWhite.x);
111  }
112}
113fn out_bool2_vb2(v: ptr<function, vec2<bool>>) {
114  {
115    (*v) = vec2<bool>(bool(_globalUniforms.colorWhite.y));
116  }
117}
118fn out_bool3_vb3(v: ptr<function, vec3<bool>>) {
119  {
120    (*v) = vec3<bool>(bool(_globalUniforms.colorWhite.z));
121  }
122}
123fn out_bool4_vb4(v: ptr<function, vec4<bool>>) {
124  {
125    (*v) = vec4<bool>(bool(_globalUniforms.colorWhite.w));
126  }
127}
128fn _skslMain(coords: vec2<f32>) -> vec4<f32> {
129  {
130    var h: f32;
131    var _skTemp6: f32;
132    out_half_vh(&_skTemp6);
133    h = _skTemp6;
134    var h2: vec2<f32>;
135    var _skTemp7: vec2<f32>;
136    out_half2_vh2(&_skTemp7);
137    h2 = _skTemp7;
138    var h3: vec3<f32>;
139    var _skTemp8: vec3<f32>;
140    out_half3_vh3(&_skTemp8);
141    h3 = _skTemp8;
142    var h4: vec4<f32>;
143    var _skTemp9: vec4<f32>;
144    out_half4_vh4(&_skTemp9);
145    h4 = _skTemp9;
146    var _skTemp10: f32;
147    out_half_vh(&_skTemp10);
148    h3.y = _skTemp10;
149    var _skTemp11: vec2<f32>;
150    out_half2_vh2(&_skTemp11);
151    h3 = vec3<f32>((_skTemp11), h3.y).xzy;
152    var _skTemp12: vec4<f32>;
153    out_half4_vh4(&_skTemp12);
154    h4 = (_skTemp12).zwxy;
155    var h2x2: mat2x2<f32>;
156    var _skTemp13: mat2x2<f32>;
157    out_half2x2_vh22(&_skTemp13);
158    h2x2 = _skTemp13;
159    var h3x3: mat3x3<f32>;
160    var _skTemp14: mat3x3<f32>;
161    out_half3x3_vh33(&_skTemp14);
162    h3x3 = _skTemp14;
163    var h4x4: mat4x4<f32>;
164    var _skTemp15: mat4x4<f32>;
165    out_half4x4_vh44(&_skTemp15);
166    h4x4 = _skTemp15;
167    var _skTemp16: vec3<f32>;
168    out_half3_vh3(&_skTemp16);
169    h3x3[1] = _skTemp16;
170    var _skTemp17: f32;
171    out_half_vh(&_skTemp17);
172    h4x4[3].w = _skTemp17;
173    var _skTemp18: f32;
174    out_half_vh(&_skTemp18);
175    h2x2[0].x = _skTemp18;
176    var i: i32;
177    var _skTemp19: i32;
178    out_int_vi(&_skTemp19);
179    i = _skTemp19;
180    var i2: vec2<i32>;
181    var _skTemp20: vec2<i32>;
182    out_int2_vi2(&_skTemp20);
183    i2 = _skTemp20;
184    var i3: vec3<i32>;
185    var _skTemp21: vec3<i32>;
186    out_int3_vi3(&_skTemp21);
187    i3 = _skTemp21;
188    var i4: vec4<i32>;
189    var _skTemp22: vec4<i32>;
190    out_int4_vi4(&_skTemp22);
191    i4 = _skTemp22;
192    var _skTemp23: vec3<i32>;
193    out_int3_vi3(&_skTemp23);
194    i4 = vec4<i32>((_skTemp23), i4.w);
195    var _skTemp24: i32;
196    out_int_vi(&_skTemp24);
197    i2.y = _skTemp24;
198    var f: f32;
199    var _skTemp25: f32;
200    out_float_vf(&_skTemp25);
201    f = _skTemp25;
202    var f2: vec2<f32>;
203    var _skTemp26: vec2<f32>;
204    out_float2_vf2(&_skTemp26);
205    f2 = _skTemp26;
206    var f3: vec3<f32>;
207    var _skTemp27: vec3<f32>;
208    out_float3_vf3(&_skTemp27);
209    f3 = _skTemp27;
210    var f4: vec4<f32>;
211    var _skTemp28: vec4<f32>;
212    out_float4_vf4(&_skTemp28);
213    f4 = _skTemp28;
214    var _skTemp29: vec2<f32>;
215    out_float2_vf2(&_skTemp29);
216    f3 = vec3<f32>((_skTemp29), f3.z);
217    var _skTemp30: f32;
218    out_float_vf(&_skTemp30);
219    f2.x = _skTemp30;
220    var f2x2: mat2x2<f32>;
221    var _skTemp31: mat2x2<f32>;
222    out_float2x2_vf22(&_skTemp31);
223    f2x2 = _skTemp31;
224    var f3x3: mat3x3<f32>;
225    var _skTemp32: mat3x3<f32>;
226    out_float3x3_vf33(&_skTemp32);
227    f3x3 = _skTemp32;
228    var f4x4: mat4x4<f32>;
229    var _skTemp33: mat4x4<f32>;
230    out_float4x4_vf44(&_skTemp33);
231    f4x4 = _skTemp33;
232    var _skTemp34: f32;
233    out_float_vf(&_skTemp34);
234    f2x2[0].x = _skTemp34;
235    var b: bool;
236    var _skTemp35: bool;
237    out_bool_vb(&_skTemp35);
238    b = _skTemp35;
239    var b2: vec2<bool>;
240    var _skTemp36: vec2<bool>;
241    out_bool2_vb2(&_skTemp36);
242    b2 = _skTemp36;
243    var b3: vec3<bool>;
244    var _skTemp37: vec3<bool>;
245    out_bool3_vb3(&_skTemp37);
246    b3 = _skTemp37;
247    var b4: vec4<bool>;
248    var _skTemp38: vec4<bool>;
249    out_bool4_vb4(&_skTemp38);
250    b4 = _skTemp38;
251    var _skTemp39: vec2<bool>;
252    out_bool2_vb2(&_skTemp39);
253    b4 = vec4<bool>((_skTemp39), b4.yz).xzwy;
254    var _skTemp40: bool;
255    out_bool_vb(&_skTemp40);
256    b3.z = _skTemp40;
257    var ok: bool = true;
258    ok = ok && (1.0 == ((((((h * h2.x) * h3.x) * h4.x) * h2x2[0].x) * h3x3[0].x) * h4x4[0].x));
259    ok = ok && (1.0 == ((((((f * f2.x) * f3.x) * f4.x) * f2x2[0].x) * f3x3[0].x) * f4x4[0].x));
260    ok = ok && (1 == (((i * i2.x) * i3.x) * i4.x));
261    ok = ok && (((b && b2.x) && b3.x) && b4.x);
262    return select(_globalUniforms.colorRed, _globalUniforms.colorGreen, vec4<bool>(ok));
263  }
264}
265@fragment fn main() -> FSOut {
266  var _stageOut: FSOut;
267  _stageOut.sk_FragColor = _skslMain(/*fragcoord*/ vec2<f32>());
268  return _stageOut;
269}
270