1) Testing rectangles against paths is an easy thing to solve on the CPU.
2) On the first iPhone models if you're doing anything graphics related the bottleneck is likely to be the GPU, so why give it more work?
3) Having the GPU rasterize into a user surface (which by definition must be available immediately) is going to cause an ugly stall as you wait for the drawing pipeline to be flushed. (no lock semantics in core graphics).
4) Having the CPU block on results from the GPU mid-frame is one of the worst things you can do in architectures that feature graphics acceleration.
1) Testing rectangles against paths is an easy thing to solve on the CPU.
2) On the first iPhone models if you're doing anything graphics related the bottleneck is likely to be the GPU, so why give it more work?
3) Having the GPU rasterize into a user surface (which by definition must be available immediately) is going to cause an ugly stall as you wait for the drawing pipeline to be flushed. (no lock semantics in core graphics).
4) Having the CPU block on results from the GPU mid-frame is one of the worst things you can do in architectures that feature graphics acceleration.