PVRTune Complete

PowerVR Developer Tools

Track down the most complex performance issues on PowerVR hardware

PVRTune Complete exposes an unprecedented level of hardware and firmware/driver data on a mobile/embedded GPU in a groundbreaking first.

Give your PowerVR application the edge

  • Analyse real-time data on your application performance with driver level software counters and hardware registers.
  • Benefit from faster and more efficient profiling sessions, with real-time visualisation of GPU performance metrics.
  • Now with ‘API awareness’ of native programming interfaces such as OpenGL® ES, allowing you to view events generated by the client driver.

PVRTune Complete comes in two parts

  • PVRTune GUI
    our multi-platform client that runs on your computer which reads, formats and presents the data stream sent by …
  • PVRPerfServer
    our lightweight application that runs on various target platforms. It connects to our graphics driver and forwards the data that the driver is emitting.

Next level optimisation features

  • Low level analysis
    See render target information and shader information. You’ll find out how work submitted at the application level directly affects the driver and hardware.
  • API Awareness
    View application level API calls such as glDraw*, and “trace” their path from application to driver to hardware. You’ll gain a complete understanding of the impact various API calls have on your application’s behaviour and performance.
  • Spot pipeline bubbles
    Synchronisation objects (see below) let you detect where work is being queued, which means the reasons for hardware idle time can be identified.
  • UI Enhancements
    We’ve improved the presentation of data, timeline events, and task properties to make the data clearer and more understandable.

Synchronisation objects

Improve the performance of your application by detecting pipeline bubbles in your application’s workload. PVRTune Complete now captures Synchronisation Objects emitted by our driver. Every hardware block/module has its own queue, for example Tiler Queue, Renderer Queue and 2D Queue. This queue shows the synchronisation objects that relate to the Tiler, Renderer, and 2D tasks respectively.

How does it work?

The driver uses these objects to ensure that queued operations are executed by the GPU in the correct order. Operations can be blocked by sync objects until a previous operation completes and frees a resource, such as a render target. Synchronisation objects essentially allow you to visualise when work is first queued by the driver and then subsequently executed by the hardware, once the conditions of the synchronisation object are satisfied.

Introducing the Client Stream

Fully understand the dynamics of your profiled application, by obtaining more information than previously possible using the Client Stream. PVRTune Complete now retrieves and presents API events that have been generated by the OpenGL ES and EGL client driver. The Client Streamis the timing data generated and emitted by the module in the driver which applications directly interface with, through APIs such as OpenGL ES. It tracks only certain important API calls. You will now be able to get render target information such as:

  • Pixel format
  • Dimensions
  • Depth/stencil load/store operations
  • Surface compression
  • Shader information – currently GLSL source code

PVRTune Complete is available for free from Imagination Technologies, under NDA

To obtain your copy, please click the button below. The original PVRTune Developer is still available without an NDA. This version has reduced information from the client data stream.