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 compromised through changes that do not benefit performance, while the development process is kept 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 start. Once the optimisation work completes, the application requires re-profiling to determine if the work has improved performance and if 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.
The following are some PowerVR-specific tools to consider for profiling and debugging purposes:
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 suite of tools and SDK are available for download from our developer portal.