Efficient parallel processing
The processing of a render pass on a Mali GPU is split into three distinct phases:
- The application specifies the render pass using the graphics API.
- The vertices for the whole render pass are shaded and tiled.
- The pixels for the whole render pass are shaded tile-by-tile.
These three phases happen serially for each render pass; the application must completely specify a render pass before geometry processing can start, and geometry processing must complete before fragment processing can start. Over time this looks like:
Note that this diagram shows each phase starting immediately after the previous one finishes, but in reality the three processing queues are decoupled. If a queue is busy processing an earlier render pass then there may be a delay in starting its workload.