xref: /aosp_15_r20/external/skia/tests/sksl/wgsl/FunctionCallDependencies.wgsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1diagnostic(off, derivative_uniformity);
2diagnostic(off, chromium.unreachable_code);
3struct FSIn {
4  @builtin(position) sk_FragCoord: vec4<f32>,
5};
6struct FSOut {
7  @location(0) sk_FragColor: vec4<f32>,
8};
9fn getColor_h4h(c: f32) -> vec4<f32> {
10  {
11    return vec4<f32>(c);
12  }
13}
14fn getFragCoordAugmentedColor_h4h(_stageIn: FSIn, c: f32) -> vec4<f32> {
15  {
16    let _skTemp0 = getColor_h4h(c);
17    return vec4<f32>(_stageIn.sk_FragCoord.xyxy * vec4<f32>(_skTemp0));
18  }
19}
20fn writeColorToOutput_vh(_stageOut: ptr<function, FSOut>, c: f32) {
21  {
22    let _skTemp1 = getColor_h4h(c);
23    (*_stageOut).sk_FragColor = _skTemp1;
24  }
25}
26fn writeToOutput_v(_stageOut: ptr<function, FSOut>) {
27  {
28    writeColorToOutput_vh(_stageOut, 1.0);
29  }
30}
31fn modifyOutputColor_v(_stageIn: FSIn, _stageOut: ptr<function, FSOut>) {
32  {
33    let _skTemp2 = getFragCoordAugmentedColor_h4h(_stageIn, 2.0);
34    (*_stageOut).sk_FragColor = (*_stageOut).sk_FragColor + _skTemp2;
35  }
36}
37fn _skslMain(_stageIn: FSIn, _stageOut: ptr<function, FSOut>) {
38  {
39    writeToOutput_v(_stageOut);
40    modifyOutputColor_v(_stageIn, _stageOut);
41  }
42}
43@fragment fn main(_stageIn: FSIn) -> FSOut {
44  var _stageOut: FSOut;
45  _skslMain(_stageIn, &_stageOut);
46  return _stageOut;
47}
48