PowerVR Tools and SDK 2023 Release 1

SDK

General

  • PVRUtils: Improved feedback on Vulkan for no compatible memory types found. Fixed incorrect mappability now only HOST_VISIBLE_BIT is taken into account.
  • PVRVk: Added missing success check for vkDeviceWaitIdle. Fixed construction of pvrvk::DescriptorPool when using descriptors of types VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV.
  • PVRScope: Fix SDK Make error when looking for libPVRScopeDeveloper.a library for Linux_armv8_64
  • PVRShell: Migrated from wl_shell to the newer xdg_shell provided by wayland-protocols. Fixed Wayland surface-related errors.
  • Framework: Added get supported depth stencil format overload without display attributes

Examples

  • Ray tracing examples fixes: Allowed packing of transformation matrices for shaders when VkPhysicalDeviceLimits::minUniformBufferOffsetAlignment has value different from 64, fixed validation errors.
  • OpenGLES PostProcessing demo: Changed default buffer mapping behaviour to be non-coherent. Added manual flushing for mapped buffers and -coherent flag option to enable coherent buffer mapping.
  • Vulkan HelloRayTracing demo: Removed serialisation on renderImage, avoiding potential performance bottleneck.

PVRCarbon v0.10

General

  • Update Vulkan support to 1.3.240.

Export To C++

  • Allow VMA to use VK_KHR_dedicated_allocation if supported and enabled.
  • Allow VMA to use buffer device address features if Vulkan 1.2 is used and the bufferDeviceAddress feature has been enabled.
  • Allow VMA to use buffer device address features if VK_KHR_buffer_device_address is supported and enabled and the bufferDeviceAddress feature has been enabled.
  • Fix the disabling of unsupported VkDeviceCreateInfo-pNext chain features.
  • VkDebugUtilsMessengerCreateInfoEXT, VkDebugReportCallbackCreateInfoEXT and VkDeviceDeviceMemoryReportCreateInfoEXT are now ignored if used in pNext chains.
  • Update the included VMA to v3.0.1.

Export To Text

  • Add support for creating the output folder if it doesn’t exist.
  • Fix the appended file extension.
  • Add –export-results option to enable/disable the exporting of results.
  • Add –export-arguments option to enable/disable the exporting of call arguments.
  • Add –export-argument-names option to enable/disable the exporting of argument names.
  • Add –export-struct-members option to enable/disable the exporting of API structure members.

Frame Analysis

  • Add support for capturing VkSamplerYcbcrConversion information.

GUI

  • Update the ‘Save As’ dialog to support the saving of individual APIs.
  • The GUI will now offer to relaunch PVRCarbonPlayer if it crashes.

Frame Analysis

  • Improve triggering of Frame Analysis when the Renderer isn’t active due to prior playback issues.
  • Add support for displaying VkSamplerYcbcrConversion information.
  • Add support for displaying Vulkan descriptor types, DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, and DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK.
  • Add support for displaying VK_EXT_debug_utils and VK_EXT_debug_marker object names.
  • Add support for displaying OpenGL ES 3.2, GL_KHR_debug, and GL_EXT_debug_label object labels.
  • Add support for displaying VK_EXT_debug_utils and VK_EXT_debug_marker labels in the Task List.
  • Add support for displaying OpenGL ES 3.2, GL_KHR_debug, and GL_EXT_debug_marker groups/markers.
  • Fix opening of RenderDoc captures in the launched RenderDoc process.

Export To Text

  • Add option to enable/disable the exporting of results.
  • Add option to enable/disable the exporting of call arguments.
  • Add option to enable/disable the exporting of argument names.
  • Add option to enable/disable the exporting of API structure members.

Static Analysis

  • Fix vertical widget resizing.

Player

  • Change default behaviour for –capture-frames to make the images fully opaque.
  • Add –preserve-alpha option to keep the alpha channel for captured frames intact.
  • Implement playback of vkGetPhysicalDeviceCalibrateableTimeDomainsEXT.
  • Implement playback of vkGetPhysicalDeviceSurfacePresentModes2EXT.
  • Fix offscreen playback of glDiscardFramebufferEXT.
  • PVRCarbonPlayer will now log the supported EGL/OpenGL ES extensions during playback of recordings which use EGL/OpenGL ES calls.
  • X11 windows can now be closed by pressing escape or using the close window button.
  • Fix playback of recordings which used VkSwapchains with fewer images than supported by the playback platform.
  • Add support for playing back vkWaitForFences when VK_TIMEOUT is returned at playback time and VK_SUCCESS was returned at record time.
  • Add support for playing back vkGetQueryPoolResults when VK_NOT_READY is returned at playback time and VK_SUCCESS was returned at record time.
  • Fix the disabling of unsupported VkDeviceCreateInfo-pNext chain features.

Recorder

  • On Android and Linux improve handling of SEGV_ACCERR read errors caused by incorrect application API usage.
  • Fix a bug where libPVRCarbon.so would be kept loaded longer than necessary when using VK_LAYER_POWERVR_carbon.

Static Analysis

  • Fix crashes seen when analysing failed vkCreateGraphicsPipelines calls.

Trimming

  • Add support for trimming Vulkan recordings.
  • Add –apis option to allow exporting a particular API from a recording.

PVRTexTool v5.5.0

GUI

  • DTEC-4608: The diff mode UI settings are now persistent between mode changes.
  • DTEC-4609: The grid size in a new image view now defaults to the most recent value that was set by the user in any other open view.
  • The encode window now displays the new texture size (based on the currently selected pixel format) and relative percentage change from the textures current pixel format.
  • Add new Texture Info dialog which displays the textures vital stats and metadata, this dialog can be accessed by clicking on the info button in the top-right hand corner of the image viewer.
  • DTEC-4541: Fix incorrect search results returned by the texture format BPP filter in the encode window.
  • DTEC-4593: Replace the bias value control in colour diff mode with buttons that allow the user to toggle between absolute and signed difference modes.

PVRTexLib

  • Add support for Colour, Tolerance and Blend diff functionality to the public C API. New APIs include; PVRTexLib_ColourDiff, PVRTexLib_ToleranceDiff and PVRTexLib_BlendDiff.

PVRTune v14.155

General

  • Implement DTEC-4855: Support RGX_HWPERF_GPU_STATE_CHG data. Enable via “PVRPerfServerComplete –DeviceStateChg=1”, or via the PVRTune GUI option “Device State Change”. When enabled, a small additional timeline per GPU shows green for active, red for blocked, nothing for idle.
  • Implement DTEC-1701: Add performance warnings on options that can increase the amount of data being generated.
  • Implement DTEC-4951: fix formatting in PVRPerfServer Details / Devices (push content of shorter tab pages to the top).
  • Fix DTEC-4866: PVRTuneDeveloper: GPU mem read/write/total counters zero/grey on volcanic.
  • Implement DTEC-4984: Convert mdita documentation to rst/sphinx documentation for release.

GUI

  • Fix DTEC-4826: incorrect installation path of the RISC-V variant of PVRPerfServer caused remote deployment to fail for RISC-V based platforms.
  • Fix Counter Table context menu crash: right-clicking (for example) to bring up the context menu while disconnected would result in crashes.
  • Fix Developer-build Counter Table display of counters for multiple devices by distinguishing multiple devices/drivers.
  • Fix DTEC-5139: duplicate tab view names displayed on the main page.
  • Fix DTEC-5130: per graph pane close button should only be available when there is more than one pane. Previously, the button was available but did nothing when only one pane is shown.

PVRTuneComplete

  • Implement DTEC-4496: C++17 is required. Drop support for QNX Software Development Platform 7.0 (QNX700). Drop support for building with gcc 7.5.0 (Ubuntu 18).
  • Fix DTEC-4758: erroneous zero core count possible on multi-core devices. Also show the multi core (MC) count in GPU string; MC count (if >1) will now show in PVRPerfServer “* GPU device:” output and in PVRTune Counter Table.
  • Fix DTEC-4916: revert broken pipeline starved metrics. To use the latest default/built-in counters and groups, use menu “Edit/Custom Groups..”, click “Load Default”, “Apply” and “Close”.
  • Fix DTEC-4951. Fix NNA device recognition. Fix .bin to .PVRTune file conversion when GPU & NNA drivers present.
  • Fix DTEC-5076: HW counters unavailable for a small number of BXEP and CXM BVNCs.
  • Fix DTEC-5094: Max PBE pixels per clock (PPC) incorrect for some Hood, 9XM, 9XE, 9XEP, BXM, BXS, CXTP, DXT.

GUI

  • Implement DTEC-4268: show icon to indicate whether or not this binary’s default Counter Groups are loaded. Show a badge if some groups on some device(s) will require a special driver build with elevated SW-defined-limits on the number of HW counter readings that can be supported. When data is loaded, show a second icon indicating whether the current group, on the current device(s), require a special driver build; escalate to a red icon if the current driver does not report support for enough counters.
  • Implement DTEC-4755: added support for special driver builds supporting more than 12 counters on volcanic devices. In the PVRPerfServer Details docking window: fixed bad formatting of the ‘unexpected counter blocks’ warning; do not warn about a ‘missing’ legacy PIPELINE_STATS counter block on volcanic; allow select and copy of warnings.
  • Implement DTEC-4978: show current DriverID and StreamID in ‘raw’ CSV export.
  • Implement DTEC-4866: Counter Group editing now supports a compatibility check for Developer build variants. This option is to allow PVRTune Developers to verify that a designed counter group will work in the Developer variant build, if used as the new default counters.

PVRVFrame v10.15.3

  • Fix invariant replacement in GLSL ES to GLSL conversion.
  • Fix swizzled PLS variable replacement in GLSL ES to GLSL conversion.
  • Fix glRenderbufferStorageMultisample internal format validation.