xref: /aosp_15_r20/external/skia/tests/sksl/wgsl/TextureIntrinsics.wgsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1diagnostic(off, derivative_uniformity);
2diagnostic(off, chromium.unreachable_code);
3@group(1) @binding(0) var texRGBA: texture_storage_2d<rgba8unorm, write>;
4@group(1) @binding(1) var texRed: texture_2d<f32>;
5fn fill_texture_vTT(passedInTexRGBA: texture_storage_2d<rgba8unorm, write>, passedInTexRed: texture_2d<f32>) {
6  {
7    let _skTemp0 = vec2<u32>(0u);
8    let red: vec4<f32> = textureLoad(passedInTexRed, _skTemp0, 0);
9    let _skTemp1 = textureDimensions(passedInTexRGBA);
10    let sizeX: u32 = _skTemp1.x;
11    let _skTemp2 = textureDimensions(passedInTexRGBA);
12    let sizeY: u32 = _skTemp2.y;
13    var coords: vec2<u32>;
14    {
15      coords.y = 0u;
16
17      loop {
18        if coords.y < sizeY {
19          {
20            {
21              coords.x = 0u;
22
23              loop {
24                if coords.x < sizeX {
25                  {
26                    textureStore(passedInTexRGBA, coords, red);
27                  }
28                } else {
29                  break;
30                }
31                continuing {
32                  coords.x = coords.x + u32(1);
33                }
34              }
35            }
36          }
37        } else {
38          break;
39        }
40        continuing {
41          coords.y = coords.y + u32(1);
42        }
43      }
44    }
45  }
46}
47fn _skslMain() {
48  {
49    fill_texture_vTT(texRGBA, texRed);
50  }
51}
52@compute @workgroup_size(1, 1, 1) fn main() {
53  _skslMain();
54}
55