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.

Figure 1: Cyclical Profiling

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.
  • PVRTrace/PVRCarbon provides capture of API calls for further analysis.

The full PowerVR Tools and SDK is available for download here.