xref: /aosp_15_r20/external/skia/tests/sksl/shared/Assignment.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};
9@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms;
10struct S {
11  f: f32,
12  af: array<f32, 5>,
13  h4: vec4<f32>,
14  ah4: array<vec4<f32>, 5>,
15};
16var<private> globalVar: vec4<f32>;
17var<private> globalStruct: S;
18fn keepAlive_vh(h: ptr<function, f32>) {
19  {
20  }
21}
22fn keepAlive_vf(f: ptr<function, f32>) {
23  {
24  }
25}
26fn keepAlive_vi(i: ptr<function, i32>) {
27  {
28  }
29}
30fn assignToFunctionParameter_vif(_skParam0: i32, y: ptr<function, f32>) {
31  var x = _skParam0;
32  {
33    x = 1;
34    (*y) = 1.0;
35  }
36}
37fn _skslMain(coords: vec2<f32>) -> vec4<f32> {
38  {
39    var i: i32 = 0;
40    var i4: vec4<i32> = vec4<i32>(1, 2, 3, 4);
41    var f3x3: mat3x3<f32> = mat3x3<f32>(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0);
42    var x: vec4<f32>;
43    x.w = 0.0;
44    x = vec4<f32>((vec2<f32>(0.0)), x.zw).yxzw;
45    var ai: array<i32, 1>;
46    ai[0] = 0;
47    var ai4: array<vec4<i32>, 1>;
48    ai4[0] = vec4<i32>(1, 2, 3, 4);
49    var ah3x3: array<mat3x3<f32>, 1>;
50    ah3x3[0] = mat3x3<f32>(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0);
51    var af4: array<vec4<f32>, 1>;
52    af4[0].x = 0.0;
53    af4[0] = (vec4<f32>(1.0)).zxwy;
54    var s: S;
55    s.f = 0.0;
56    s.af[1] = 0.0;
57    s.h4 = vec4<f32>((vec3<f32>(9.0)), s.h4.w).yzxw;
58    s.ah4[2] = vec4<f32>(s.ah4[2].xz, (vec2<f32>(5.0))).xzyw;
59    globalVar = vec4<f32>(0.0);
60    globalStruct.f = 0.0;
61    var _skTemp0: f32 = f3x3[0].x;
62    assignToFunctionParameter_vif(0, &_skTemp0);
63    f3x3[0].x = _skTemp0;
64    var l: f32;
65    l = 0.0;
66    ai[0] = ai[0] + ai4[0].x;
67    s.f = 1.0;
68    s.af[0] = 2.0;
69    s.h4 = vec4<f32>(1.0);
70    s.ah4[0] = vec4<f32>(2.0);
71    var repeat: f32;
72    repeat = 1.0;
73    repeat = repeat;
74    var _skTemp1: f32 = af4[0].x;
75    keepAlive_vf(&_skTemp1);
76    af4[0].x = _skTemp1;
77    var _skTemp2: f32 = ah3x3[0][0].x;
78    keepAlive_vh(&_skTemp2);
79    ah3x3[0][0].x = _skTemp2;
80    var _skTemp3: i32 = i;
81    keepAlive_vi(&_skTemp3);
82    i = _skTemp3;
83    var _skTemp4: i32 = i4.y;
84    keepAlive_vi(&_skTemp4);
85    i4.y = _skTemp4;
86    var _skTemp5: i32 = ai[0];
87    keepAlive_vi(&_skTemp5);
88    ai[0] = _skTemp5;
89    var _skTemp6: i32 = ai4[0].x;
90    keepAlive_vi(&_skTemp6);
91    ai4[0].x = _skTemp6;
92    var _skTemp7: f32 = x.y;
93    keepAlive_vh(&_skTemp7);
94    x.y = _skTemp7;
95    var _skTemp8: f32 = s.f;
96    keepAlive_vf(&_skTemp8);
97    s.f = _skTemp8;
98    var _skTemp9: f32 = l;
99    keepAlive_vh(&_skTemp9);
100    l = _skTemp9;
101    var _skTemp10: f32 = f3x3[0].x;
102    keepAlive_vf(&_skTemp10);
103    f3x3[0].x = _skTemp10;
104    var _skTemp11: f32 = repeat;
105    keepAlive_vf(&_skTemp11);
106    repeat = _skTemp11;
107    return _globalUniforms.colorGreen;
108  }
109}
110@fragment fn main() -> FSOut {
111  var _stageOut: FSOut;
112  _stageOut.sk_FragColor = _skslMain(/*fragcoord*/ vec2<f32>());
113  return _stageOut;
114}
115