PowerVR SDK v5.13
General
- Changes in CMake to speed up Android builds. Downgraded CMake to v3.10 and Gradle to v3.5.3. NDK 20.0.5594570 is a valid version when cross compiling for Android from Windows / Linux.
- Fixed PVRVk getCacheMaxDataSize(), initializing dataSize parameter handed to vkGetPipelineCacheData to identify cases where pipeline cached data has size 0.
- Fixed over 170 compilation warnings.
Examples
- Added new Vulkan example: Antialiasing (MSAA, FXAA, TAA).
- Fixed VulkanTimelineSemaphores example crashing on early exit when the extension is not supported.
- Fixed VulkanSubgroups example no ouput on BXM-8-256: Workgroup width was being set to zero during setup.
- Fixed OpenGLESPostProcessing and VulkanPostProcessing small artifacts on the edge of the mesh when no post processing method is being applied.
- Fixed making several SDK demos time deterministic when using the -forceframetime parameter (OpenGLESDeferredShading, OpenGLESGameOfLife, OpenGLESParticleSystem, VulkanDeferredShading, VulkanDeferredShadingPFX, VulkanGameOfLife, VulkanGnomeHorde, ParticleSystemGPU).
- Fixed VulkanHelloRayTracing various buffers being built with not optimal memory properties.
PVRTune v14.158
GUI
- Implement PVRTune & Qt-6.2: high resolution graphs when DPI scaling. Graphs no longer look increasingly blurry as OS DPI scaling is increased.
- Implement Find results: allow multi-select and copy.
- Fix unable to connect to server if a SSH device with the same IP address is placed inside the SSH Devices list. Replaced the “Connect to:” ComboBox, Connect and New Device buttons, and static Shortcuts “localhost” and “Android USB device”, with a new more intuitive list of connect/load options alongside the existing Shortcuts list. Update Menu offerings to match. “Override PVRPerfServer Settings” and “Schedule Resource Capture” moved to the bottom of the screen, with the options now hidden until enabled. Improved information available about Shortcuts.
- Fix allocated Streams memory leak.
- Implement allow multi-select and hide/show (using space bar or enter key) of timelines in the Timelines docking window.
- Fix excessive Qt text eliding in Properties docking window.
- Fix Counter Table “Hide Inactive”, “Show Visible Only” and switching counter group now all update the visible counters appropriately.
- Fix Resource Viewer is always synchronising GUI and Engine. Improves performance of GUI.
- Fix redraw graphs after Edit/Preferences… “Draw timelines with equal sizes” or “Timeline spacing” change.
- Implement PVRTune specified clock speed: allow unit suffix, for example 1K is a shortcut for 1000.
PVRPerfServer
- Implement notify the user if timing data packets were lost.
PVRScope
- Implement PVRScopeStats: add EPVRScopeEvent count enum value.
PVRCarbon v0.13
General
- Expand Frame analysis’ Vulkan coverage.
- Update Vulkan support to 1.3.283.
Export To C++
- Add support for
eglImage*
calls that make use ofOpenGL ES
textures and renderbuffers as their client buffers. - Add support for
eglImage*
calls that make use ofEGL_NATIVE_BUFFER_ANDROID
client buffers. - Add support for
eglImage*
calls that make use ofEGL_LINUX_DMA_BUF_EXT
client buffers. - Fix disabling of unsupported
Vulkan
device features that have been promoted to core. - Fix disabling of unsupported
Vulkan
device features whenvkGetPhysicalDeviceFeatures2
is unsupported by falling back tovkGetPhysicalDeviceFeatures2KHR
. - Improve the tidying up of platform resources (e.g. windows) in exported code.
- Add RISC-V cmake toolchain file to
cmake/toolchains
under the exported code directory.
Player
- Add command-line option
--export-shaders
for exporting the recorded source/data for shaders to files allowing for modification. - Add command-line option
--import-shaders
for importing shaders previously exported with--export-shaders
. The imported shaders will then be used for playback overriding the recorded source/data. - Rename command-line option
--drm-device
to--buffer-drm-device
. - Add support for playing back
EGLNativePixmapTypeREL
pixmaps (if supported by the playback device). By default/dev/dri/card0
will be used but a different device can be specified using--pixmap-drm-device=<value>
- Improve the DRM dumb buffer implementation used for native buffer playback so it no longer defaults to
/dev/dri/card0
but iterates over the devices for one with support. - Add support for allocating DMA buffers from a DMA heap as an alternative to DRM dumb buffers for native buffer playback. By default
/dev/dma_heap/system
will be used but a different heap can be specified using--buffer-dma-heap=<value>
. The player will default to DRM dumb buffers if a device can be found with support, otherwise, the DMA heap implementation will be used. Either implementation can be forced via--buffer-impl
. - Add support for transcoding EGL Image native buffer data during playback if the platform does not support the recorded format.
- Fix the default mode used for
--dump-gpu-timestamps
. - Add support for frame GPU timing information via
--dump-gpu-timestamps
forOpenGL ES
for platforms that supportEGL_ANDROID_GLES_layers
. See--dump-gpu-timestamps
command-line description in the documentation for more information. - Add support for using
--dump-gpu-timestamps
alongside--offscreen
. - Add support for emulating EGL Images backed by native buffers on platforms that don’t support
EGL_EXT_image_dma_buf_import
andEGL_ANDROID_image_native_buffer
. - Fix playback of native buffers with formats
AHARDWAREBUFFER_FORMAT_YCrCb_420_SP
andAHARDWAREBUFFER_FORMAT_YV12
on Android. - Fix playback of Vulkan sparse image memory bindings.
- Add support for enabling VK_NV_ray_tracing_validation if supported when using
--enable-api-debug-report
. - Add support for retrying failed memory map requests when
VK_EXT_map_memory_placed
is used to request a particular virtual address. - Add support for
VkBindMemoryStatusKHR
fromVK_KHR_maintenance6
.
Recorder
- Increase the overridden alignment values to 4096. The overridden alignment values returned by PVRCarbon specify the required alignment, in bytes, of the offset within an allocation required for binding a resource. The increase improves the portability of recordings.
- Add overrides for the alignments required for texel buffer offsets.
- Improve the robustness of serialising Vulkan structures with members which can be ignored.
- Fix recording applications which use
VK_EXT_descriptor_buffer
. - Optimise the state output for Vulkan recordings that don’t begin at frame 0. State is now written out on a per-object basis when needed instead of the entirety being written up front.
- Add support for recording
EGLNativePixmapTypeREL
pixmaps.
GUI
- Fix various remote recording/playback connection issues.
Frame Analysis
- Fix an issue where frame analysis jobs would fail abruptly if they were started during GUI playback.
- Change the default task view to a tree view.
- Display modified VkImageView and VkBuffer objects for any Vulkan shader based task.
- Add support for the analysis of Vulkan texel buffers (VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER/VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER).
- Fix an issue where cubemap images could not be viewed using the cubemap viewer.
- Fix a number of task list issues when analysing applications using Vulkan debug groups.
- Improve the handling of “top-level” commands showing the result of their “nested” commands e.g. vkCmdExecuteCommands, vkQueueSubmit, vkQueueSubmit2, vkQueueSubmit2KHR or Vulkan debug groups.
- Fix an issue where for Vulkan copy commands only the source data may have been shown in some cases.
- Add a VkDeviceMemory object widget.
- Add a Vulkan copy commands widget.
- Add support for viewing Vulkan push constant data.
- Improve performance in general.
- Remove the vertex count and estimated vertex shader cost (cycles) of draw calls.
Remote Recording
- Fix the setting of the logging output options.
- Reduce the time taken to finalise recordings.
Trimming
- Add support for trimming EGL Images backed by Linux DMA buffers or Android Hardware buffers.
- Fix trimming of
GL_BOOL_VEC*
uniforms.
Frame Analysis
- Add support for
VK_EXT_extended_dynamic_state
. - Add support for
VK_EXT_extended_dynamic_state2
. - Add support for
VK_EXT_extended_dynamic_state3
. - Add support for
VK_EXT_graphics_pipeline_library
. - Add support for
VK_EXT_pipeline_creation_feedback
. - Add support for
VK_EXT_private_data
. - Add support for
VK_EXT_shader_object
. - Add support for
VK_EXT_transform_feedback
. - Add support for
VK_EXT_vertex_input_dynamic_state
. - Add support for
VK_KHR_maintenance3
. - Add support for
VK_KHR_maintenance4
. - Add support for
VK_KHR_dynamic_rendering
. - Fix an issue where Vulkan depth stencil attachment updates were not tracked properly for minimal z prepasses where a graphics pipeline only makes use of a vertex shader stage.
- Fix image capture for VkImageView objects which use VK_REMAINING_MIP_LEVELS/VK_REMAINING_ARRAY_LAYERS in their subresource range definition.
- Improve support for analysing memory heavy applications.
- Improve performance in general.
PVRStudio v1.0.6
General
- Improved way of retrieving device details (Linux / Android).
- Switching IPv4 extraction (and extra checks) on ADB bridge.
- Fix Debugger won’t trigger proper callback notification from RSP bridge.
GUI
- Filtering out unwanted kits.
- Tooltip fix (CPU Debugger).
- Added new type of CPU register (CodeRegister / DataRegister).
- Implement Debugger plugin frontend from scratch for RSP+Dwarf bridge (Linux/Windows/Android)
IMGDebugger
- Added instruction level stepping capability.
- Added support for LLDB server.
- Added support for AArch64 target architecture.
- Added support for PE file format, enabling debugging Windows targets.
- Added support for debugging shared libraries.
- Optimized Remote Serial Protocol (RSP) communication, vastly improving performance.
Profiling Compilers
- 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.
PVRTextool
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.
PVRVFrame v10.17.0
- Add support for
GL_EXT_blend_func_extended
on platforms that supportOpenGL 3.2
or later. - Fix GLSL ES to GLSL conversion for pre-3.0 shaders that define
texture
,textureLod
, andtextureProjLod
as functions.