PowerVR Tools and SDK 2023 Release 2


  • ASTC as preferred format over PVRTC.
  • Fixed validation errors in four SDK examples (HybridHardShadows, HybridReflections, HybridSoftShadows, RayTracingDenoising).
  • Updated toolchains for QNX (armv7, armv8, gcc-x86_32, gcc-x86_64).
  • Extended max swapchain number in all Vulkan demos, making swapchain images completely dynamic for any swapchain number.
  • Added new module for GL ES Safety Critical applications on Automotive.
  • Subgroups Demo validation: Verification subgroup size is greater than zero.
  • Fix in HelloRayTracing Vulkan Demo removing unneeded memory properties for buffer allocations.
  • Fix in PipelineCache Vulkan Demo to return correct pipeline cache size.
  • PVRScope libraries update to PVRTune Developer 23.1.
  • Added new GL ES Safety Critical Example: Automotive Surround View.
  • Added new GL ES Example: Shader Based Anti Aliasing Demo.
  • Added new Vulkan Example: GPU-controlled rendering.
  • Added new Vulkan Example: SPH Fluid simulation.
  • Added new Vulkan Example: Timeline semaphores.
  • The documentation from this repository has been moved to https://docs.imgtec.com/

PVRCarbon v0.11


  • Add vkQueueWaitIdle to list of custom delimiters.


  • Add Android command-line binaries for PVRCarbonFrameAnalysis, PVRCarbonTrim, and PVRCarbonToCpp. These are intended to be ran from an adb shell on powerful rooted Android devices for times where analysis/trimming operations can’t be performed on Linux/Windows platforms.
  • Add command-line option --frame to PVRCarbonFrameAnalysis to specify the frame to analyse.
  • Fix invalid unordered_map<K, T> key error seen with PVRCarbonToCpp when exporting some Vulkan recordings with the --disable-surface-replacement option.
  • Improve validation of --uid-range and --frame-range command-line arguments.

Export To C++

  • Improve maximum path length handling.
  • Improve buffer device address handling.
  • Add support for VK_KHR_ray_tracing_pipeline and VK_KHR_acceleration_structure.


Frame Analysis

  • Add data viewer to Buffer objects.
  • Fix displaying OpenGL ES draw indirect data in the Input Assembly widget.
  • Add support for viewing vertex attribute data.
  • Add support for viewing uniform, uniform buffer, and storage buffer data.
  • Fix crashes seen when exporting some tables to file.


  • Add support for handling and updating VkImageFormatListCreateInfo in the format emulation layer.
  • Add VK_LAYER_POWERVR_gpu_timestamps which is a Vulkan layer that can be used to provide accurate timing information using Vulkan’s timestamp queries mechanism.


  • Add option --api-debug-report-level to define the severity of messages returned by the Vulkan validation layers when --enable-api-debug-report is enabled. The player now defaults to showing errors only.
  • Fix a bug in --capture-frames where the last capture may not be written to file.
  • Remove option --ignore-capture-replay-compatibility. The player will now warn if the playback platform is different to the recorded platform but will attempt to use recorded device addresses if the capture replay feature is supported.
  • Rename --show-windows to --create-windows and clarify its behaviour in the documentation.
  • Add --hide-created-windows option to hide native windows on their creation. Currently only implemented for Windows.
  • Add filtering of EGL_CONTEXT_OPENGL_NO_ERROR_KHR from eglCreateContext calls if EGL_KHR_create_context_no_error is unsupported.
  • Add command-line option --drm-device to allow the user to override the default DRM device /dev/dri/card0 used for creating DMA buffers when playing back native buffers.
  • Improve the selection of physical devices to better match the physical devices used at record time.
  • Improve the robustness of the synchronisation used when rendering offscreen with --offscreen.
  • Add command-line options --dump-gpu-timestamps--dump-gpu-timestamps-path and --dump-gpu-timestamps-base-filename which can be used to enable and configure the use of VK_LAYER_POWERVR_gpu_timestamps to provide accurate timing information during playback of recordings.


  • Disable VK_EXT_shader_module_identifier during recording as it produces non-portable recordings. This extension and its features can be enabled by setting the disable_identifiers config option to false.
  • Add config option PVRCARBON_native_buffer_drm_device to define the DRM device to use. If undefined, PVRCarbon will query /dev/dri/card0 - /dev/dri/card9 to find the device.


  • Add support for Vulkan timeline semaphores.
  • Fix screenshot saving during trimming.
  • Add command line argument --strip-recorded-framebuffers to strip screenshots while trimming.
  • Add support for VK_EXT_debug_utils and VK_EXT_debug_report.
  • Improve the selection of queues used for trimmed resource initialisation.
  • Add support for VK_KHR_ray_tracing_pipeline and VK_KHR_acceleration_structure.
  • Add support for OpenGL ES sync objects.

PVRTune v14.156


  • We no longer support rogueddk branches 1.6, 1.7 and 1.8; and we no longer support .PVRTune files from 4.0, 16.1, 16.2 or 17.1. Use PVRTune from the 23.1 release for that.
  • Improve documentation of where Custom Marks will be displayed in PVRTune (in a PVRScope Timeline or in the PVRPerfServer Timeline).


  • Implement DTEC-4444 and DTEC-4470: Improve Stream & TL identification in GUI. Improve Stream and Timeline names, prefix a Device colour swatch to each timeline (before the Timeline, normally PID, colour swatch).
  • Implement DTEC-4649: PVRTune export Properties for all tasks to a TXT file.
  • Fix DTEC-5126: A line of text is broken on the welcome screen of PVRTune.
  • Fix DTEC-5129: Windows DPI-scaling crops view of Smooth spinner.
  • Improve DTEC-5326: Vulkan client stream, fix occasional crash and improve performance.
  • Implement DTEC-5424: Add descriptions for “2d|compute|renderer|tiler time” counters in PVRTune.
  • Implement DTEC-5537 Feature request: Option to show precise counter values in PVRTune’s Counter Table. Added “Show precise values” to context menu.
  • Implement DTEC-5620: Remove broken “Integrate Connection” option; now the Connect window will always be integrated.
  • Fix DTEC-5622: Graph Pane context menu “Pause View” option: keep check state in sync and fix occasional need for duplicate keyboard shortcut keypresses. Also ensure the view is paused when viewing a selected time range.
  • Fix DTEC-5685 Counter Table: “Show Selected” crashes for folders (should not be available).
  • Implement DTEC-5673 Timelines docking window: Add context menu with Show All/Hide All options.
  • Implement DTEC-5748: Show ContextID on GLES, OCL and OGL timelines.
  • Fix DTEC-5756: Occasional miscoloured text: white text not readable.
  • Implement DTEC-5845 PVRTune: Disable Clock Transform menu when no sub-menu options.
  • Fix DTEC-5851: “PVRPerfServer Details” docking windows contents disappear when pressing ESC on keyboard.
  • Fix DTEC-5855 PVRTune: Segmentation fault error when running PVRPerfServer with –nopid option on Ubuntu.
  • Implement DTEC-5882 PVRTune: PVRPerfServer-> Details…. menu should be deleted.
  • Implement DTEC-5883 StatsReport: Remove Context Menu, replace with controls.
  • Fix DTEC-5885 PVRTune: Graph settings tab gets out of screen.
  • Fix DTEC-6109 PVRTune: Incorrect numbering when adding new tabs.
  • Fix DTEC-6113: HTML markup showing in Status Bar.
  • Fix DTEC-6131: Dynamic DPI changes (i.e. move PVRTune between monitors with different DPI scaling) in graph panes. Fixes minor layout issues: enlarged line spacing, enlarged arrows, placement of items on HUD.


  • Fix DTEC-4304: Allow PVRScopeComms to migrate between threads.


  • Implement DTEC-4785: PVRPerfServer command-line option --exec to run a process and exit after.
  • Implement DTEC-6110: PVRPerfServer --sendto should append “.PVRTune” if missing.



  • Implement DTEC-4299: Read and display ExtJobRef. Group enqueue/fail with the begin/end on NNA devices.
  • Implement DTEC-4415: Per-core power on/off events on NNA devices.
  • Implement DTEC-4417: Export and display ‘priority’ on NNA (4NX) devices.
  • Implement DTEC-4859: PVRTune documentation of NNA and GPU sources.


  • Implement DTEC-5320: Vulkan Shader Analysis instructions generate a .txt file; update the “File/Load Shader Analysis…” file extension filter.
  • Implement DTEC-4298: Show NNA clock cycles and calculated clock speed.
  • Implement DTEC-5749: Allow ‘unknown’ client events to form a task.
  • Fix DTEC-5953: Rogue MC2 DMCycle calculation can be incorrect.
  • Fix DTEC-5831: Possible improper processing of Rogue MC2 counter readings. Also improve Properties view of “Counter Reset”, “Counter Config” and “Expected counter readings” with Rogue MC2.
  • Fix DTEC-6129: “Duration” ToolTip should not display for child items.

PVRVFrame v10.15.4

  • Fix warning Undefined behaviour: A GL error occurred and GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR was set for this context which was being incorrectly output in some code paths.

PVRStudio v1.0.2

  • New Remote Android deployment plugin. Allows to build native-only applications and deploy to any Android device. 
  • Android remote screen-capture. 
  • Enhanced documentation navigation and style and updated content. 
  • All system dialogs are now properly themed following the ID style.
  • Enhanced Welcome landing page to make it simpler and quicker to navigate. 
  • Updated Profiling Compilers and SpirV-Tools for SpirV and GLSL analysis and profiling. 

Profiling Compilers v23.2

  • First release. Command-line wrapper for PowerVR GPU Profiling Compiler to allow inclusion in toolchains. The Profiling Compilers read GLSL, SpirV and OpenCL kernels and output profiling statistics and GPU assembly code in both in TXT and JSON formats.