xref: /aosp_15_r20/external/skia/tests/sksl/shared/IfStatement.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  colorWhite: vec4<f32>,
8};
9@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms;
10fn ifElseTest_h4h4h4h4(colorBlue: vec4<f32>, colorGreen: vec4<f32>, colorRed: vec4<f32>) -> vec4<f32> {
11  {
12    var result: vec4<f32> = vec4<f32>(0.0);
13    if any(_globalUniforms.colorWhite != colorBlue) {
14      {
15        if all(colorGreen == colorRed) {
16          {
17            result = colorRed;
18          }
19        } else {
20          {
21            result = colorGreen;
22          }
23        }
24      }
25    } else {
26      {
27        if any(colorRed != colorGreen) {
28          {
29            result = colorBlue;
30          }
31        } else {
32          {
33            result = _globalUniforms.colorWhite;
34          }
35        }
36      }
37    }
38    if all(colorRed == colorBlue) {
39      {
40        return _globalUniforms.colorWhite;
41      }
42    }
43    if any(colorRed != colorGreen) {
44      {
45        return result;
46      }
47    }
48    if all(colorRed == _globalUniforms.colorWhite) {
49      {
50        return colorBlue;
51      }
52    }
53    return colorRed;
54  }
55}
56fn _skslMain(_skParam0: vec2<f32>) -> vec4<f32> {
57  {
58    let _skTemp0 = ifElseTest_h4h4h4h4(vec4<f32>(0.0, 0.0, _globalUniforms.colorWhite.z, 1.0), vec4<f32>(0.0, _globalUniforms.colorWhite.y, 0.0, 1.0), vec4<f32>(_globalUniforms.colorWhite.x, 0.0, 0.0, 1.0));
59    return _skTemp0;
60  }
61}
62@fragment fn main() -> FSOut {
63  var _stageOut: FSOut;
64  _stageOut.sk_FragColor = _skslMain(/*fragcoord*/ vec2<f32>());
65  return _stageOut;
66}
67