It really depends on what you need to do. For instance, let's say that I want to apply an alpha mask to an image. If the mask changes often, or if I want to maintain the original image without the extra memory overhead of creating a copy, then applying the mask on the GPU makes sense. However, if the mask never changes, it only needs to be applied once, and it isn't necessary to maintain the original image, then it makes sense to do it on the CPU, and save my GPU clock cycles for things that actually do need to be computed every frame. It's a matter of what your needs are. Really this is the question you should be asking yourself: "Does this NEED to be updated every frame, or is this something that can be computed once, cached, and reused?"