xref: /aosp_15_r20/external/skia/tests/sksl/shared/Control.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  unknownInput: f32,
8};
9@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms;
10fn _skslMain(_stageOut: ptr<function, FSOut>) {
11  {
12    if _globalUniforms.unknownInput > 5.0 {
13      {
14        (*_stageOut).sk_FragColor = vec4<f32>(0.75);
15      }
16    } else {
17      {
18        discard;
19      }
20    }
21    var i: i32 = 0;
22    loop {
23      if i < 10 {
24        {
25          (*_stageOut).sk_FragColor = (*_stageOut).sk_FragColor * 0.5;
26          i = i + i32(1);
27        }
28      } else {
29        break;
30      }
31    }
32    loop {
33      {
34        (*_stageOut).sk_FragColor = (*_stageOut).sk_FragColor + 0.25;
35      }
36      continuing {
37        break if (*_stageOut).sk_FragColor.x >= 0.75;
38      }
39    }
40    {
41      var i: i32 = 0;
42      loop {
43        {
44          if (i % 2) == 1 {
45            break;
46          } else {
47            if i > 100 {
48              return ;
49            } else {
50              continue;
51            }
52          }
53        }
54        continuing {
55          i = i + i32(1);
56          break if i >= 10;
57        }
58      }
59    }
60    return ;
61  }
62}
63@fragment fn main() -> FSOut {
64  var _stageOut: FSOut;
65  _skslMain(&_stageOut);
66  return _stageOut;
67}
68