PowerVR Graphics SDK tools explained: Profiling a render with PVRTune

This blog post is about PVRTune, the PowerVR hardware performance analysis tool included in the PowerVR Graphics SDK.

Profiling a render with PVRTune_1

PVRTune collects performance data in real-time to get a very detailed view of what is the GPU doing (again, in real time). This helps you identify the bottlenecks in your render, regardless of how obscure they might be.

Further recommended reading

I would definitely recommend you to check my quick start guide for Android: PVRTune Quick Start Guide for Android. Also, you can look into installing PVRMonitor as it packs some of the PVRTune functionality listed below.

Profiling a render with PVRTune_2

Overview

PVRTune is divided in two components:

  • PVRPerfServer: A daemon that runs on the PowerVR device. It retrieves the GPU performance data and sends it over the network
  • PVRTune GUI: A GPU profiling tool that runs on a Linux, Mac OS or Windows computer. It connects to the device through PVRPerfServer and displays the GPU performance data in a comprehensive way

It allows us to:

  • Capture the FPS (total and per-PID)
  • Capture timing data (GPU timing events)
  • Capture hardware loads
  • Capture the CPU load
  • Capture the memory transfers (GPU memory upload)

If we combine it with PVRTrace recording libraries we can also:

  • Capture API call timing data
  • Capture software counters
  • Override the render state

About the data itself

Profiling a render with PVRTune_3

The data is exposed at the driver level by the PVRScopeServices. For more details on the data itself please check my earlier  PVRScope Stats blog post.

The data shown by PVRTune varies slightly from device to device even though all the core hardware counters and timing data stats are common.

Profiling a render with PVRTune_4

All the loads, counters and timing events are explained in the PVRTune User Manual. On Series5 hardware you should definitely keep an eye for:

  • CPU Load

The percentage of time that the CPU is busy. The value is the average load across all CPU cores.

  • GPU Task Load: TA 

The load of the “TA core”. This includes USSE (Universal Scalable Shader Engine) vertex processing, TA (Tile Accelerator) processing and related stall time.

  • GPU Task Load: 3D

The load of the “3D core”. This includes ISP (Image Synthesis Processor), TSP (Texture and Shading Processor), USSE (Universal Scalable Shader Engine) fragment processing and related stall time

  • USSE Load: Pixel

Percentage of time that the USSE (Universal Scalable Shader Engine) has spent processing pixels.

  • USSE Load: Vertex 

Percentage of time that the USSE (Universal Scalable Shader Engine) has spent processing vertices.

Which platforms are supported?

All Linux and Android PowerVR devices are compatible with PVRTune. This includes all commercial Android devices, regardless of OS or GPU driver version. It just works out of the box.

Conclusion

This has been a short intro to PVRTune. I intend to get into more details on the following blog posts where I am going to describe the UI with more detail.

For an overview of the PowerVR Graphics SDK 3.2, check out this blog post we’ve written at launch. Make sure you follow us on Twitter (@PowerVRInsider) for the latest news and announcements from the PowerVR Developer Technology team.

Leave a Comment

Search by Tag

Search for posts by tag.

Search by Author

Search for posts by one of our authors.

Featured posts
Popular posts

Blog Contact

If you have any enquiries regarding any of our blog posts, please contact:

United Kingdom

benny.har-even@imgtec.com
Tel: +44 (0)1923 260 511

Related blog articles

What is PowerVR Automotive? Register NOW to hear our webinar.

The automotive industry is going through many changes and that is having a huge impact on the semiconductor IP industry. The vehicle will move from being predominantly mechanical to primarily a computer on wheels enabling a future of self-driving cars,

Image-based lighting

PowerVR Tools and SDK 2018 Release 2 now available

Here’s an early Christmas present for graphics developers – the release of the latest version of our PowerVR Tools and SDK! The headline features for this release include some exciting new examples demonstrating new techniques in our SDK, and some very

on stage in China

PVRIC4 a hit at ICCAD 2018 in China

Imagination’s PVRIC4 image compression tech garnered plenty of attention at the recent ICCAD China 2018 symposium, which took place on 29th and 30th November at the Zhuhai International Convention & Exhibition Centre, China. The annual event focusses on integrated circuit

The ultimate embedded GPUs for the latest applications

Introducing PowerVR Series9XEP, Series9XMP, and Series9XTP As Benjamin Franklin once said, only three things in life are certain: death, taxes and the ongoing rapid advancement of GPUs for embedded applications*. Proving his point, this week, Imagination has once again pushed

Stay up-to-date with Imagination

Sign up to receive the latest news and product updates from Imagination straight to your inbox.

  • This field is for validation purposes and should be left unchanged.