xref: /aosp_15_r20/external/skia/tests/sksl/shared/CompileTimeConstantVariables.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;
10const kConstant: i32 = 0;
11const kOtherConstant: i32 = 1;
12const kAnotherConstant: i32 = 2;
13const kFloatConstant: f32 = 2.14;
14const kFloatConstantAlias: f32 = kFloatConstant;
15const kConstVec: vec4<f32> = vec4<f32>(1.0, 0.2, 2.14, 1.0);
16fn _skslMain(_skParam0: vec2<f32>) -> vec4<f32> {
17  {
18    const kLocalFloatConstant: f32 = 3.14;
19    let kLocalFloatConstantAlias: f32 = kLocalFloatConstant;
20    let integerInput: i32 = i32(_globalUniforms.colorGreen.y);
21    if integerInput == kConstant {
22      {
23        return vec4<f32>(2.14);
24      }
25    } else {
26      if integerInput == kOtherConstant {
27        {
28          return _globalUniforms.colorGreen;
29        }
30      } else {
31        if integerInput == kAnotherConstant {
32          {
33            return kConstVec;
34          }
35        } else {
36          if kLocalFloatConstantAlias < (f32(_globalUniforms.colorGreen.x) * kLocalFloatConstant) {
37            {
38              return vec4<f32>(3.14);
39            }
40          } else {
41            if kFloatConstantAlias >= (f32(_globalUniforms.colorGreen.x) * kFloatConstantAlias) {
42              {
43                return vec4<f32>(0.0);
44              }
45            } else {
46              {
47                return vec4<f32>(1.0, 0.0, 0.0, 1.0);
48              }
49            }
50          }
51        }
52      }
53    }
54  }
55  return vec4<f32>();
56}
57@fragment fn main() -> FSOut {
58  var _stageOut: FSOut;
59  _stageOut.sk_FragColor = _skslMain(/*fragcoord*/ vec2<f32>());
60  return _stageOut;
61}
62