- 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
- 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.
- 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.
- Add support for capturing VkSamplerYcbcrConversion information.
- Update the ‘Save As’ dialog to support the saving of individual APIs.
- The GUI will now offer to relaunch PVRCarbonPlayer if it crashes.
- 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.
- Fix vertical widget resizing.
- 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.
- 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.
- Fix crashes seen when analysing failed vkCreateGraphicsPipelines calls.
- Add support for trimming Vulkan recordings.
- Add –apis option to allow exporting a particular API from a recording.
- 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.
- Add support for Colour, Tolerance and Blend diff functionality to the public C API. New APIs include; PVRTexLib_ColourDiff, PVRTexLib_ToleranceDiff and PVRTexLib_BlendDiff.
- 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.
- 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.
- 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.
- 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.
- 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.