Render State Override Window in PVRTune

Note: Currently, this functionality relies on PVRTrace libraries. The final release of PVRTrace was in the 2019 2nd Release, and so the required libraries must be installed from the Previous Releases page.

The Render State Override window in PVRTune permits remote control of some of the render state of a target device. This provides a useful means of prototyping render changes as well as enabling the quick identification of certain bottlenecks.

To use render state override functionality, PVRTrace libraries must be installed on the target device and profiling mode should be enabled.

Note: The Render State Override functionality is a specialisation of the PVRScope Remote Editor functionality. The PVRTrace library is using the PVRScope library.

The table below provides a list of the various render state override options as well as their descriptions.

Force zero viewportModified the viewport to have zero-sided dimensions.
Disable blendingDisables alpha blending.
Force 2x2 texturesForces textures to be 2 pixels by 2 pixels in size.
Force flat colour frag shaderForces the fragment shader to output a single colour.
Disable stencil testDisables the stencil test.
Disable depth testDisables the depth test.
Disable scissor testDisables the scissor test.
Disable draw callsDisables all glDraw() function calls.
Disable flush and finishDisables all glFlush() and glFinish() function calls.
Disable texture modificationsDisables glTexSubImage2D() and glTexSubImage3D() function calls, as well as updating of texture sub-regions.
Disable texture filteringDisables texture filters. All texture filters are set to the nearest point.
Disable discard / alpha testDisables the alpha test.
Disable frame buffer accessesDisables glReadPixels() function calls.
Culling mode: App definedForces the culling mode to perform culling as definedi n the user application.
Culling mode: NoneDisables culling.
Culling mode: BackForces the culling mode to perform back-face culling.
Culling mode: FrontForces the culling mode to perform front-face culling.

OpenGL ES Timing Data

In some situations, in addition to the Tiler and Renderer processing times, it is also useful to know more about how the graphics API calls are processed by the driver. This mode of operation shows timing data being sent from the PVRTrace recording libraries – visualised as a graph displaying the draw calls as well as EGL swap buffer operations.

It is possible to configure this to view either all or specific EGL calls. By being able to record OpenGL ES timing data this way, further insight can be gained into how, for example, work is cascading up through the graphics pipeline, from the driver to the CPU. This can consequently help isolate any bottlenecks.