xref: /aosp_15_r20/external/skia/tests/sksl/shared/ScopedSymbol.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};
10@binding(0) @group(0) var<uniform> _globalUniforms: _GlobalUniforms;
11var<private> glob: i32;
12fn block_variable_hides_global_variable_b() -> bool {
13  {
14    return glob == 2;
15  }
16}
17struct S {
18  i: i32,
19};
20fn local_variable_hides_struct_b() -> bool {
21  {
22    const S: bool = true;
23    return S;
24  }
25}
26fn local_struct_variable_hides_struct_type_b() -> bool {
27  {
28    const S: S = S(1);
29    return S.i == 1;
30  }
31}
32fn local_variable_hides_global_variable_b() -> bool {
33  {
34    const glob: i32 = 1;
35    return glob == 1;
36  }
37}
38fn _skslMain(coords: vec2<f32>) -> vec4<f32> {
39  {
40    glob = 2;
41    const _0_var: bool = true;
42    var _skTemp0: vec4<f32>;
43    var _skTemp1: bool;
44    var _skTemp2: bool;
45    var _skTemp3: bool;
46    var _skTemp4: bool;
47    if _0_var {
48      let _skTemp5 = block_variable_hides_global_variable_b();
49      _skTemp4 = _skTemp5;
50    } else {
51      _skTemp4 = false;
52    }
53    if _skTemp4 {
54      let _skTemp6 = local_variable_hides_struct_b();
55      _skTemp3 = _skTemp6;
56    } else {
57      _skTemp3 = false;
58    }
59    if _skTemp3 {
60      let _skTemp7 = local_struct_variable_hides_struct_type_b();
61      _skTemp2 = _skTemp7;
62    } else {
63      _skTemp2 = false;
64    }
65    if _skTemp2 {
66      let _skTemp8 = local_variable_hides_global_variable_b();
67      _skTemp1 = _skTemp8;
68    } else {
69      _skTemp1 = false;
70    }
71    if _skTemp1 {
72      _skTemp0 = _globalUniforms.colorGreen;
73    } else {
74      _skTemp0 = _globalUniforms.colorRed;
75    }
76    return _skTemp0;
77  }
78}
79@fragment fn main() -> FSOut {
80  var _stageOut: FSOut;
81  _stageOut.sk_FragColor = _skslMain(/*fragcoord*/ vec2<f32>());
82  return _stageOut;
83}
84