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

Optimal Development Approach

The best approach for graphics development

Cyclical profiling

It is crucial to follow these recommendations from the very start of development to
save time and effort later.

Once an application is implemented to a near-final state, the Cyclical Profiling
process shown below should be followed. The main benefit of this approach is that
time is not wasted, and graphics quality is not comprised by making changes that do
not benefit performance.

Understanding rendering bottlenecks

It is a common misconception that the same actions can speed up any application. For
example:

Polygon count reduction: If the bottleneck of the application is fragment
processing or texture bandwidth, then the only result of this action will be to
reduce the graphical quality of the application without improving rendering
speed. If simpler models cause more of the render target to be covered by a
material with complex fragments, then this can slow down an application.

Reduce rendering resolution: If the fragment processing workload of the
application is not the bottleneck, then this will also only serve to reduce the
quality of the graphics in the application without improving performance.

It is only once the limiting factor of an application is determined by profiling with
the correct tools that optimisation work should be applied. Once work has been done,
then the application requires re-profiling in order to determine whether the work
improved performance, and whether the bottleneck is still at the same stage of the
graphics pipeline. It may be that the limiting stage in rendering is now at a
different place and further optimisation should be targeted accordingly.

Some PowerVR-specific tools to consider for this purpose:

PVRTune is a hardware profiler, giving
real-time data on application performance, including access to hardware
counters.

PVRMonitor is a lightweight,
fully-configurable Android overlay, giving quick access on-device to the same
hardware counters as PVRTune.