2.2. Mali rendering strategy

The Mali GPUs use tile-based immediate-mode rendering.

For this type of rendering, the framebuffer is divided into tiles of size 16 by 16 pixels. The Polygon List Builder (PLB) organizes input data from the application into polygon lists. There is a polygon list for each tile. When a primitive covers part of a tile, an entry, called a polygon list command, is added to the polygon list for the tile.

The pixel processor takes the polygon list for one tile and computes values for all pixels in that tile before starting work on the next tile. Because this tile-based approach uses a fast, on-chip tile buffer, the GPU only writes the tile buffer contents to the framebuffer in main memory at the end of each tile. Non-tiled-based, immediate-mode renderers generally require many more framebuffer accesses. The tile-based method therefore consumes less memory bandwidth, and supports operations such as depth testing, blending and anti-aliasing efficiently.


  • The pixel processors in the Mali-200 and Mali-400 MP GPUs support early-Z rejection of fragments when depth testing is enabled. If depth testing is set to less than or equal for example, when a fragment is generated, the hardware tests whether the fragment depth is greater than that of the same pixel in previously-generated fragments. If so, the new fragment is discarded before it reaches the fragment shader.

  • An important aspect of the tile based rendering strategy that Mali uses, is that the tilebuffer is cleared each time you start processing a new tile. When the framebuffer content has to be preserved, from the previous frame, that is, EGL_SWAP_BEHAVIOR set to EGL_BUFFER_PRESERVED, this imposes a performance impact because the previous content has to be loaded for each tile before new content can be processed for that tile.

Copyright © 2007-2009 ARM. All rights reserved.ARM DUI 0363D