Efficient parallel processing

The processing of a render pass on a Mali GPU is split into three distinct phases:

  1. The application specifies the render pass using the graphics API.
  2. The vertices for the whole render pass are shaded and tiled.
  3. 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:

Basic Pipeline

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.