A brief guide outlining how to optimise applications
for compute tasks on PowerVR Rogue hardware.

Optimal Particle Rendering on PowerVR

Particle rendering can cause overdraw issues leading to
performance bottlenecks

Game developers like to use particle systems extensively to add effects such as smoke,
dust, and dirt to their games. These particle systems usually consist of many 2D quads that
sample a texture and use alpha blending to composite them. This can be a good solution for
implementing some of these effects, but it can come with a significant performance impact if
used carelessly. In particular, lots of alpha-blended particles can cause a massive overdraw
issue, which means the GPU has to rasterize many more fragments for each pixel than usual.
This issue may be present for even small amounts of particles if their on-screen size is
large. PVRTune or PVRMonitor can be used to check the current overdraw value, which
needs to be kept as low as possible.

If a performance bottleneck happens only due to an out-of-control overdraw issue, the
following suggestions may help:

Reduce the number of particles used if at all possible.

Use meshes for particles that closely follow the opaque-transparent edges within the
texture used, such as a circular mesh for a puff of smoke. This way, completely
transparent parts will not be causing unnecessary overdraw.

For particles, it may not be important to have crisp textures in the distance, so
anisotropic filtering could be disabled.