Counter Table Window in PVRTune

The Counter Table displays a list of all the currently available counters that can be displayed in the timing graph.

By default, the Counter Table window is placed in the top left of the GUI. The data which generates these counters can come from various sources such as the hardware, the firmware, the host operating system, or the driver.

../../../_images/image47.png

Counters give detailed information about the current state of the device and application dynamics during any given moment (sample) of the profiling session, such as:

  • GPU Loads;

  • CPU Loads;

  • Memory Loads;

  • Frame Time;

  • Number of Polygons input/output to hardware;

  • Average number of cycles for shader programs;

  • Register pressure.

A counter can be shown or hidden on the timing graph by:

  • Selecting the coloured checkbox to the left of the table;

  • Right-clicking on a counter and selecting Show Selected (Ctrl + E);

  • Right-clicking on a counter and selecting Remove Counter;

  • Dragging a counter item into the graph window;

  • Hovering over a counter in the timing graph and pressing Del.

Selecting Display Columns in the Counter Table

By default, counter data are tabulated following a similar format as shown in the Counter Table. Additional data sets can be customised for display by right-clicking the Counter Table window and choosing the Select Columns option, as shown below.

../../../_images/image49.png

The table below shows a summary of the columns that can be selected and deselected on demand:

Column

Description

0.1s to 32s

These values represent time frames. Columns show the average value of counters. For example, the 32s column gives the average over the last 32 seconds.

Highlighted

By hovering the mouse over a task, its time range is highlighted. This column shows the values of counters over that highlighted time range.

Selected

By selecting a time range and using this checkbox, it is possible to view the average over the selected region.

Line

This column responds to mouse hover. It shows the values of the counters at the time associated with the position of the mouse in the graph view.

Task

This column responds to mouse hover. It shows the average value of the counters over the time frame of a single Tiler or Renderer task.

Frame

This column responds to mouse hover. It shows the average value of given counters over the time frame of a single frame.

View

This column responds to mouse hover. It shows the average value of counters over the time frame of the graph which the cursor is currently over.

Adding a Counter to the Graph View

Counters can be plotted against the timeline to give a graphical representation of their change over time. During connected analysis in the PVRTune GUI, counters are updated in realtime.

To add a counter to the graph view, perform the following steps:

  1. Identify the counter of interest from the Counter Table window.

  2. Drag and drop the counter from the Counter Table window to an existing graph present in the Timeline area.

This results in the addition of new plotted data on the graph. The image below shows an example where the frames per second counter, represented by the line graph, has been added to a graph view with rendered timing data.

../../../_images/image51.png

After this, a new graph can be created by dragging and dropping a counter to a graph placeholder available in the Timeline area. A graph placeholder is the narrow area of space located above or below a graph view. This is shown by (a) in the image below.

../../../_images/image53.png

Removing a Counter from the Graph View

Counters plotted in the graph view can be removed when they are no longer required. To remove a counter from the graph view, perform the following steps:

  1. In the Timeline area, identify the counter to be removed.

  2. Select the graph line corresponding to the counter by clicking on it.

  3. Press Del to remove the plotted counter data from the graph. The same action can be achieved by right-clicking the counter plot and selecting the Remove Counter option from the action menu.

PVRTrace Software Counters

Note

The final release of PVRTrace was in the 2019 2nd Release. In order to access these counters, a previous version of the PowerVR Tools and SDK must be downloaded from the Previous Releases page.

An application can send custom software counters to PVRTune via PVRScope. When an application is being profiled by PVRTrace, the corresponding software counters sent to PVRTune using PVRScope provide data on certain statistics within the running application.

Enabling PVRTrace Software Counters

The approach to enabling these counters on Android, Linux, QNX, and Windows is as follows:

Android

Using PVRTrace on Android requires PVRHub. In the Options screen, ensure that the setting Enable Software Counters is enabled. PVRTrace Recording Libraries must be installed on the device for this to work.

Note

As with PVRTrace, the final release of PVRHub was in the 2019 2nd Release. In order to use these software counters on Android, a previous version of the PowerVR Tools and SDK must be installed.

Linux

With PVRHub installed, run pvr_profile <binary> where <binary> is the application that is required to be profiled with software counters active.

QNX and Windows

In the pvrtraceconfig.json file on the device, ensure that for Profiling the SoftwareCounters and Enabled options are set to true.

PVRTrace Software Counters

This table lists the software counters that are available from the PVRTrace libraries.

Software counter

Indexed draw calls

Non-index draw calls

Points no.

Line no. (list)

Line no. (loop)

Line no. (strip)

Total line no.

Triangle no. (list)

Triangle no. (strip)

Triangle no. (fan).

Total triangle no.

Texture uploads

Texture modifications

Scissor calls

Viewport calls

Framebuffer accesses

Vertex shader compiles

Fragment shader compiles

Program links

Framebuffer access (bytes)

Texture uploads (bytes)

Texture modifications (bytes)

Buffer object uploads (bytes)

Buffer object modifications (bytes)

Uniform Uploads

Context binds

Shader proportion: pixel

Shader proportion: vertex

Shader proportion: compute

Vertices per batch

Shader slot scheduled count: compute

Shader slot scheduled count: pixel

Shader slot scheduled count: vertex

Shader slot size: pixel

Shader slot size: vertex