Optimal Development Approach

Cyclical profiling

It is crucial that these recommendations are followed from the very start of the development process in order 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 graphics quality is not comprised by making changes that do not benefit performance, while also keeping the development process short and efficient.



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.

Only after the limiting factor of an application is determined by profiling with the correct tools, should optimisation work should be applied. Once the work has been done, the application then requires re-profiling in order to determine whether the work has 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.

  • PVRCarbon is an API capture and replay tool which allows for analysis and debugging of graphics API usage.

The full PowerVR Tools and SDK is available for download on our developer portal.