PowerVR Tools and SDK 2017 Release 2

Removed support for 32-bit versions of the GUIs and command-line tools.

Framework v5.0

The PowerVR Framework has a new major version (5.0) and has been largely re-imagined. It is now much more focused on showing the most efficient use for each Graphics API instead of providing a common unified interface between them.

  • Removed PVRNativeAPI, PVRPlatformGlue, PVRApi.
  • Renamed PVREngineUtils to PVRUtils.
  • PVRUtils now does not rely on the an API abstraction (PVRApi), instead having separate implementations for OpenGL ES and Vulkan.
  • Added a new header file loading OpenGL ES and its extensions at runtime without compile time linking.
  • Provided a modified Vulkan.h file that is auto-generated from the Vulkan spec, providing strongly typed enums for Vulkan.
  • Added the module PVRVk, which is a Vulkan C++ wrapper, very powerful but still completely faithful to the Vulkan spec.
  • PVRVk also provides constructors with default parameters, reference counted objects, reasonable class hierarchies and in general making working with Vulkan a breeze.
  • Made the debugger break command that is triggered on Assertions to trigger *after* the relevant assertion message has been logged so as to facilitate debugging.
  • Removed a (debug) assertion from RefCountedWeakReference, that would erroneously assert if someone tried to copy-construct a RefCountedWeakReference to an existing object that had been destroyed.


  • Added the demo FramebufferDownsample showing how to use the FramebufferDownsampleIMG extension.
  • Added the demo TextureFilterCubic showing how to use the TextureFilteringCubicIMG extension.
  • Added the demo OpenCLExample, showing how to use OpenCL with OpenGL ES, including image sharing between CL and GL.
  • PVRScope User Manual: PVRScopeComms functions take a pointer, not a reference: corrected the code examples.
  • Added a highly optimised 19-tap Gaussian Blur example.


  • Added support for 3ds Max 2018.
  • Updated manual to HTML format.

PVRShaderEditor v2.11

  • Updated and unified compilers for PowerVR Rogue architectures. All variant families now share a single compiler binary.
  • Resolved various shader compilation crashes and improved internal error handling.
  • Added tool to save the compiler binary outputs.
  • Fixed launching the application with a file path as a parameter.
  • Fixed syntax highlighting preferences.
  • Fixed various issues related to setting an empty temporary file path.
  • Disabled incorrect handling of macro override for PFX2 files.
  • Updated text in new file templates.
  • Minor text fixes.
  • Updated manual to HTML format.

PVRVFrame v10.7

  • Fixed several bugs in shader translator which caused PLS shaders to not compile.
  • Fixed a bug where decompressing unsupported compressed formats may cause a crash if the current GL_UNPACK_ALIGNMENT value is greater than 4.
  • Added a system report page to PVRVFrameGUI.
  • Fixed a bug where an ES 3.1 context could be created even when the selected hardware profile does not support it.
  • Fixed a bug in the conversion of shaders that enable GL_EXT_shader_pixel_local_storage2 and GL_OVR_multiview2.
  • Fixed OVR_multiview emulation on platforms that don’t expose GL_ARB_geometry_shader4 but have a high enough version of GL for support.
  • Fixed shader conversion when the host’s glsl version is less that 430 and imageSize is used.
  • Fixed an issue loading ASTC texture data.
  • Updated manual to HTML format.

PVRTrace v3.10

  • Recorder: Added support for EGL_KHR_partial_update.
  • Recorder: Fixed a bug with the capture of EGLClientBuffer data of format HAL_PIXEL_FORMAT_YV12 where only half the chroma data was being recorded.
  • Recorder: The capturing of EGLClientBuffer data on Android now supports the new gralloc1 interface.
  • Player: Added support for EGL_KHR_partial_update.
  • Player: Fixed loading of glDrawBuffer calls when n is 0.
  • Player: The playing back of EGLClientBuffer data on Android now supports the new gralloc1 interface.
  • GUI: Worked around a crash that could occur in rare cases when generating framebuffer attachment images.
  • GUI: Added GL_CLAMP_TO_BORDER as a recognised value for the GL_TEXTURE_WRAP_* parameters.
  • GUI: Fixed the displaying of the stencil parameters in the state widget.
  • GUI: Fixed displaying of the attribute value for eglGetSyncAttribKHR.
  • GUI: Fixed displaying of GL_VERTEX_ATTRIB_ARRAY_ENABLED in the state widget.
  • GUI: Fixed a bug in the buffer data viewer where data sometimes wouldn’t show up.
  • GUI: Fixed a crash in image analysis that could occur in certain situations if glBindVertexBuffer was present.
  • GUI: Fixed a crash that could occur if the trace file contained calls to glVertexAttribBinding.
  • GUI: Fixed a crash that could occur if the trace file contained calls to glVertexAttribFormat.
  • GUI: The values of uniforms of type GL_SAMPLER_EXTERNAL_OES now display in the program viewer widget.
  • Updated manual to HTML format.

PVRShaman v2.6

  • Updated manual to HTML format.

PVRScope v14.144

  • PVRScope User Manual: PVRScopeComms functions take a pointer, not a reference: corrected the code examples.
  • Updated manual to HTML format.

PVRGeoPOD v2.23

  • Added support for 3ds Max 2018.
  • Added support for Maya 2018.
  • Blender: Added support for Custom Normals.
  • 3ds Max: Added support for exporting procedural textures as PVR files.
  • Strips are now stitched into a single one using degenerate polygons. Sending a single strip per mesh is more optimal than sending multiple small ones. This behaviour is now hard-wired and cannot be toggled by the user.
  • Added Cancel button to the export window.
  • Fixed plug-in crash in Maya 2017 for Mac OSX.
  • Fixed strip primitive output that was exporting strips of length one (bug introduced in v2.22).
  • Fixed disabling bone-batching. Now a single bone-batch is exported with the full mapping from node_id to bone indices. Please, refer to the documentation for more details.
  • Fixed exporting skin meshes with more than 4 bones per vertex. The 4 more relevant bones will be moved to these slots.
  • Updated documentation with new sections for Bone Batching and PVR Textures.
  • Updated manual to HTML format.

PVRTune v14.144

  • PowerVR Series8XT support.
  • CPU:
    • PVRPerfServer now sends and PVRTune can now show the CPU core description. It is shown in the counter description for the per-CPU-core counters.
    • We now track max frequency, current frequency limit and current frequency.
  • Monitor window:
    • Fixed the missing counter “components”. E.g. charts will now show the contributions from known/tracked PIDs.
    • Can now click on a counter and the Properties window will update. Just like clicking on a counter anywhere else.
    • Also show the counter source in the item name.
  • Counters:
    • Rename counter “texturing load” to “texturing active”. 100% means that it’s doing something 100% of the time, but not necessarily that it is 100% loaded.
    • Describe a “word” in the “GPU memory words per second” counter descriptions.
    • GPU Memory counters now describe the bus width as “(often 16 or 32 bytes)”.
    • Tweak CPU counters created. Distinguish between CPU Active (old CPU Load) and CPU Load (taking into account CPU throttling).
    • Per-PID “CPU load” counters renamed to “CPU active”.
  • Counter Table: fix issue where disconnecting and then reconnecting would cause the counter table to collapse all items.
  • Limit the maximum number of recently used files/servers to 24.
  • No longer disable any of the Open methods during/after connection. We have to be able to handle a file drag&drop at those points in time anyway.
  • Disable “Restore Default Panes” when not connected.
  • Connection Menu: ditch New. Added Android shortcut. Recents: start from Alt+1 because Alt+0 requires very long fingers.
  • Fixed render of stacked Marks trending to black: rather than drawing any & all stacked Marks (which is slower and trends towards black), now calculate an average colour and draw once.
  • Per-task string: re-order data to be more like an address (more specific first, less specific last). Add the word “duration” after the task time. Add the CID name after the CID number, when there is one.
  • Preferences:
    • Slightly simplify an option by inverting it in the GUI, naming it “equal sized timelines” rather than “equal sized timeline levels”.
    • Fix bug where the meaning of equal sized timelines vs timeline levels was inverted.
  • Updated manual to HTML format.


  • New framebuffer downsample snippet.
  • New cubic filtering snippet.


  • Updated PowerVR Performance Recommendations The Golden Rules.
  • Updated PowerVR Performance Recommendations.
  • New PowerVR Low Level GLSL Optimisation.
  • Updated PowerVR Hardware Architecture Overview for Developers.
  • Updated PowerVR Instruction Set Reference.
  • Updated PowerVR Supported Extensions.
  • Updated PowerVR Framework SDK document with all the new Framework (Vulkan) details.