layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;

layout (webgpu, rgba8, set=1, binding=0) writeonly texture2D texRGBA;
layout (webgpu, r32f,  set=1, binding=1) readonly  texture2D texRed;

noinline void fill_texture(layout(rgba8) writeonly texture2D passedInTexRGBA,
                           layout(r32f)  readonly  texture2D passedInTexRed) {
    half4 red = textureRead(passedInTexRed, uint2(0));

    uint sizeX = textureWidth(passedInTexRGBA);
    uint sizeY = textureHeight(passedInTexRGBA);

    uint2 coords;
    for (coords.y = 0; coords.y < sizeY; ++coords.y) {
        for (coords.x = 0; coords.x < sizeX; ++coords.x) {
            textureWrite(passedInTexRGBA, coords, red);
        }
    }
}

void main() {
    fill_texture(texRGBA, texRed);
}
