Analysing an Application's Performance

Effective optimisation relies on having a logical process and using the right tools.

The process of optimising graphics applications

Optimising graphics applications seems like a straightforward process. Although the steps in the diagram below may seem obvious, both beginners and experienced developers have in the past made simple mistakes that have cost large amounts of development time to resolve. Developers tend to run their analysis tools, identify a bottleneck, modify their application and then consider the work done. However, one of the most important stages of optimisation is to verify the change has actually improved performance. Without analysing performance after a modification, it is easy for new, or possibly worse, bottlenecks to creep their way into a renderer.

Figure 1: Optimisation Process for Graphics Applications

The right tools for the job

The PowerVR SDK includes profilers, debuggers and a variety of other analysis tools to help developers track down issues. Here's a quick overview of the key utilities:

  • PVRMonitor: Renders a real-time overlay of the CPU and graphics stats on Android devices with PowerVR graphics cores. Also available as plug-ins for Unity and Unreal.
  • PVRTune: Remote graphics performance analyser, with a server on the target, and a GUI analysis tool on the development machine. Captures timing data and counters, such as hardware unit loads and throughput data, in real-time.
  • PVRShaderEditor: Off-line shader editor and performance analyser. Generates disassembly in real-time for SGX and Rogue graphics cores.
  • PVRTrace: OpenGL ES 1.x, 2.0 & 3.x capture and analysis tool. PVRCarbon brings Vulkan support.

For more information regarding our entire suite of development tools, please visit our PowerVR Tools and SDK.