This blog post is about the PVRTune, the PowerVR hardware performance analysis tool included in the PowerVR Graphics SDK. Here I am going to cover the basics of the PVRTune GUI.
The first blog post of this series can be found here: PowerVR Graphics SDK tools explained: Profiling a render with PVRTune.
Placed in the center of the starting UI, the connection box is used to either connect to a device running PVRPerfServer or load a saved PVRTune recording file.
The PVRTune GUI will listen for active PVRPerfServer sessions broadcasting themselves on the same network as the host. A list of identified servers is shown in the “Broadcasting servers on subnet” box and a list of recent connections or files opened is displayed here as well.
Timing Data view
Placed on the center of the UI once the connection has been established, this is the Graph View; all the timing events, counter values and loads are displayed here.
Time moves from left to right in the Graph View (oldest data to newest). A row is created for each hardware block that timing data has been captured for. Captured timing data is visualized as bars. As the hardware blocks operate independently, timing data on different rows can (and will) overlap.
The main timing events are the TA and 3D where each block represents a different GPU task:
- TA: Represents TA Core Time. This is a measure of time spent tiling/culling the frame and running vertex shaders.
- 3D: Represents 3D Core Time. This is a measure of how much time is spent fetching textures, processing fragment shaders and other fragment processing tasks (such as PowerVR’s Hidden Surface Removal).
There are also other events displayed in the Timing Data view such as compute tasks, 2D tasks, PVRScope custom events, etc…
For enhanced readability all the timing blocks follow a common colour convention:
Counter Table view
This view contains all the counters and loads that can be accessed from the selected Active Group (where Active Group is the current set of counters retrieved by PVRPerfServer). In order to display a given value just drag (and drop) it on the Timing Data view. The counters displayed are listed on the left of the Timing Data view.
Clicking on a counter will load its description in the Counter Properties view:
The Counter Properties view contains all the relevant information of a given value. It also allows you to change the Y Axis value.
Recently added in the PowerVR Graphics SDK v3.2, the Search view is a powerful widget that will allow you to search for a word or value across the entire PVRTune recording.
In this blog post I’ve covered the core PVRTune GUI functionality which should be more than enough to get you started with your next game profiling. Stay tuned (pardon the pun) if you want to know more about some advanced functionality such as the render state override or how to include the API calls in the time line.
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.