MSAA Performance

Anti-aliasing can have a significant impact on performance

On PowerVR hardware, Multi-Sampled Anti-Aliasing (MSAA) can be performed directly in on-chip memory before being written out to system memory, which saves valuable memory bandwidth. MSAA is considered to cost relatively little performance. This is true for typical games and UIs, which have low geometry counts but very complex shaders. The complex shaders typically hide the cost of MSAA and have a reduced blend workload.

2x MSAA is virtually free on most PowerVR graphics cores (Rogue onwards), while 4x MSAA+ will noticeably impact performance. This is partly due to the increased on-chip memory footprint, which results in a reduction in tile dimensions (for instance 32 x 32 -> 32 x 16 -> 16 x 16 pixels) as the number of samples taken increases. This in turn results in an increased number of tiles that need to be processed by the tile accelerator hardware, which then increases the vertex stages overall processing cost.

The concept of good enough should be followed in determining how much anti-aliasing is enough. An application may only require 2x MSAA to look good enough, while performing comfortably at a consistent 60 FPS. In some cases, there may be no need for anti-aliasing to be used at all, for example when the target device’s display has high pixels per-inch (PPI).

Performing MSAA becomes costlier when there is an alpha blended edge, resulting in the graphics core marking the pixels on the edge to on edge blend. On edge blend is a costly operation, as the blending is performed for each sample by a shader in software. In contrast, on opaque edge is performed by dedicated hardware, and is a much cheaper operation as a result. On edge blend is also sticky, which means that once an on-screen pixel is marked, all subsequent blended pixels are blended by a shader, rather than by dedicated hardware.

To mitigate these costs, submit all opaque geometry first, which keeps the pixels off edge for as long as possible. Be extremely reserved with the use of blending, as blending has lots of performance implications, not just for MSAA.