Do Profile the Application

Identify the bottlenecks in the application and determine whether there are opportunities for improvement.

Identify the bottlenecks in the application and determine whether there are opportunities for improvement.

It is important to understand where performance is bottlenecked before attempting to optimise an application. This ensures effort is not wasted, or visual quality is not sacrificed for minimal gains. If an optimisation is inappropriately applied to an area that is not bottlenecking performance, there may be no performance improvement. In some cases, an incorrectly applied optimisation may lead to worse performance.

From the PowerVR Developer Technology team's experience, we have derived the following list of common bottlenecks generally found in applications that have not been optimised, as ordered from most to least common:

  • CPU usage
  • Bandwidth usage
  • CPU/graphics core synchronisation
  • Fragment shader instructions
  • Geometry upload
  • Texture upload
  • Vertex shader instructions
  • Geometry complexity.

Profiling tools are vital in this process for developers to understand what is happening in their application, the hardware it is running on, and how and where bottlenecks are occurring. The PowerVR SDK includes the profiling tools PVRTrace/PVRCarbon and PVRTune to aid development on platforms powered by PowerVR hardware.