1layout(binding=0) readonly texture2D src; 2layout(binding=1) writeonly texture2D dest; 3 4noinline void desaturate(readonlyTexture2D src, writeonlyTexture2D dest) { 5 half4 color = read(src, sk_GlobalInvocationID.xy); 6 color.rgb = half3(dot(color.rgb, half3(0.22, 0.67, 0.11))); 7 write(dest, sk_GlobalInvocationID.xy, color); 8} 9 10void main() { 11 if (sk_GlobalInvocationID.x < width(src) && sk_GlobalInvocationID.y < height(src)) { 12 desaturate(src, dest); 13 } 14} 15