xref: /aosp_15_r20/external/skia/resources/sksl/wgsl/TextureIntrinsics.compute (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workerlayout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
2*c8dee2aaSAndroid Build Coastguard Worker
3*c8dee2aaSAndroid Build Coastguard Workerlayout (webgpu, rgba8, set=1, binding=0) writeonly texture2D texRGBA;
4*c8dee2aaSAndroid Build Coastguard Workerlayout (webgpu, r32f,  set=1, binding=1) readonly  texture2D texRed;
5*c8dee2aaSAndroid Build Coastguard Worker
6*c8dee2aaSAndroid Build Coastguard Workernoinline void fill_texture(layout(rgba8) writeonly texture2D passedInTexRGBA,
7*c8dee2aaSAndroid Build Coastguard Worker                           layout(r32f)  readonly  texture2D passedInTexRed) {
8*c8dee2aaSAndroid Build Coastguard Worker    half4 red = textureRead(passedInTexRed, uint2(0));
9*c8dee2aaSAndroid Build Coastguard Worker
10*c8dee2aaSAndroid Build Coastguard Worker    uint sizeX = textureWidth(passedInTexRGBA);
11*c8dee2aaSAndroid Build Coastguard Worker    uint sizeY = textureHeight(passedInTexRGBA);
12*c8dee2aaSAndroid Build Coastguard Worker
13*c8dee2aaSAndroid Build Coastguard Worker    uint2 coords;
14*c8dee2aaSAndroid Build Coastguard Worker    for (coords.y = 0; coords.y < sizeY; ++coords.y) {
15*c8dee2aaSAndroid Build Coastguard Worker        for (coords.x = 0; coords.x < sizeX; ++coords.x) {
16*c8dee2aaSAndroid Build Coastguard Worker            textureWrite(passedInTexRGBA, coords, red);
17*c8dee2aaSAndroid Build Coastguard Worker        }
18*c8dee2aaSAndroid Build Coastguard Worker    }
19*c8dee2aaSAndroid Build Coastguard Worker}
20*c8dee2aaSAndroid Build Coastguard Worker
21*c8dee2aaSAndroid Build Coastguard Workervoid main() {
22*c8dee2aaSAndroid Build Coastguard Worker    fill_texture(texRGBA, texRed);
23*c8dee2aaSAndroid Build Coastguard Worker}
24