1*c8dee2aaSAndroid Build Coastguard Workerlayout(local_size_x = 16, local_size_y = 16) in; 2*c8dee2aaSAndroid Build Coastguard Worker 3*c8dee2aaSAndroid Build Coastguard Workerlayout(binding=0, rgba32f) readonly texture2D src; 4*c8dee2aaSAndroid Build Coastguard Workerlayout(binding=1, rgba32f) writeonly texture2D dest; 5*c8dee2aaSAndroid Build Coastguard Worker 6*c8dee2aaSAndroid Build Coastguard Workernoinline void desaturate(layout(rgba32f) readonly texture2D src, 7*c8dee2aaSAndroid Build Coastguard Worker layout(rgba32f) writeonly texture2D dest) { 8*c8dee2aaSAndroid Build Coastguard Worker half4 color = textureRead(src, sk_GlobalInvocationID.xy); 9*c8dee2aaSAndroid Build Coastguard Worker color.rgb = half3(dot(color.rgb, half3(0.22, 0.67, 0.11))); 10*c8dee2aaSAndroid Build Coastguard Worker textureWrite(dest, sk_GlobalInvocationID.xy, color); 11*c8dee2aaSAndroid Build Coastguard Worker} 12*c8dee2aaSAndroid Build Coastguard Worker 13*c8dee2aaSAndroid Build Coastguard Workervoid main() { 14*c8dee2aaSAndroid Build Coastguard Worker if (sk_GlobalInvocationID.x < textureWidth(src) && 15*c8dee2aaSAndroid Build Coastguard Worker sk_GlobalInvocationID.y < textureHeight(src)) { 16*c8dee2aaSAndroid Build Coastguard Worker desaturate(src, dest); 17*c8dee2aaSAndroid Build Coastguard Worker } 18*c8dee2aaSAndroid Build Coastguard Worker} 19