Version v1.34
Version v1.34
This release contains a number of important fixes and some quality of life improvements and new functionality handling, as well as laying the groundwork and baseline for new features to come in later releases.
NOTE: Recent AMD drivers have a problem that for Vulkan and GL may cause problems creating swapchains. On UE5 this can cause fatal errors on or shortly after startup when using Vulkan, and this may also appear as the use of D3D12 in applications that don't use the API. This is an AMD driver issue which has been reported and is planned to be fixed on the AMD side.
As always binary builds with installers, zips and tarballs are available on renderdoc.org.
Python API changes
- There are no API changes in this release.
- The RenderDoc python documentation now includes embedded scripts and details of how to generate stubs for use with VS code auto-complete.
Features/Improvements
- Added support for a new GLES extension: GL_EXT_clip_control.
- Store texture data on GLES for sub-rect updates of compressed textures.
- Active shader viewer bookmarks are listed in the bookmarks menu.
- The custom more readable and human-friendly DXIL disassembly has had a number of readability improvements made.
- Add support for Vulkan extensions: VK_KHR_shader_relaxed_extended_instruction and VK_EXT_shader_object
- Improve the display of entry point interface lists in SPIR-V entry points.
- Add functionality to allow packing of bitfields even when the declared bitfield straddles the alignment of its base type with
#pack(tight_bitfield_packing)
. - Added a UI for managing the ignored PDBs when resolving callstacks.
- Implemented GPU feedback for detecting dynamic access to arrayed samplers.
Bugfixes
- All: Fix an error converting an XML/ZIP capture which contains a buffer over 4GB.
- All: Fix a potential crash viewing the inputs and outputs of texture copy operations in the texture viewer.
- UI: Fix double-scale factor applied to text editor margins that would cause overly-wide margins on high DPI scaled monitors.
- UI: Fix backwards use of D3D-style and Vulkan-style terminology for shader stages in resource usage.
- UI: Fix child processes not being shown properly for remote capture.
- UI: When opening a constant buffer viewer for a binding that is already open, ensure the UI doesn't continually expand.
- UI: Don't display a byte offset for specialisation constant buffers as it is not the byte offset in the data blob.
- Windows: Fix a potential race condition if a DLL is unloaded while it is being processed for injection.
- Linux: Fix rare crash if user is not fully configured and has no password entry to determine home folder.
- Image viewer: Fix a potential random crash when opening an image file (DDS, HDR, PNG, etc).
- D3D11: Fix an incorrect case where a reference to a swapchain backbuffer would be held over resizing causing the resize to fail, which could happen when capturing multiple frames in Unreal engine.
- D3D11: Fix PS UAV usage missing from D3D11 pixel history if OM targets are also bound.
- D3D11: Fix incorrect behaviour when opening a resource via the compute shader UAVs.
- D3D12: Fix a rare potential race condition crash when creating/destroying buffers.
- D3D12: Fix a crash if a pipeline state is created with no explicit root signature, instead coming from embedded root signature in shader binaries.
- D3D12: Fix a crash if multiple D3D12 devices are created and destroyed with overlapping lifetimes.
- D3D12: When editing a shader with builtin dxc handling ensure the command line arguments are properly passed.
- D3D12: Precompile internal shaders that need dxc to avoid relying on potentially buggy old dxc found at runtime.
- D3D12: When resolving ambiguous mapping from virtual address to resource use the largest possible valid resource to avoid crashes.
- D3D12: Fix a crash when applications use new dynamic DLL selection and loading for root signature decoding.
- D3D12: Fix decoding of partially replayed ExecuteIndirect commands where the arguments include state bindings.
- D3D12: Fix incorrect duplicate execution of ExecuteIndirect in certain cases.
- D3D12: Fix reflected byte size of matrices with padding up to float4 per row/column.
- D3D12: Fix type display for compute shader built-in inputs on DXIL.
- D3D12: Fix a possible crash running pixel history with multiple queues submitting work.
- D3D12: Fix incorrect calls to CheckFeatureSupport internally for checking feature bits.
- D3D12: Handle amplification shaders where the payload is not declared as groupshared.
- D3D12: Fix mesh or task shader output failing if the root signature used has
DENY_*_SHADER_ROOT_ACCESS
flags set. - Vulkan: Fix a crash when processing shader modules with multiple entry points where one is a mesh shader.
- Vulkan: Fix a crash when opening shader message viewer to view shader printf results.
- Vulkan: Fix a case where function points are incorrectly returned from
Get*ProcAddr
forVK_EXT_acquire_drm_display
. - Vulkan: Fix storage of backing data for memory only accessed via buffer_device_address that was uploaded before the captured region of work.
- Vulkan: Fix shader editing failure on Android or other remote capture scenario.
- Vulkan: Fix crash when push constants are expected by a pipeline but never bound as they are unused in the shader.
- Vulkan: Fix an error if the
PIPELINE_COMPILE_REQUIRED
bit is set when building a compute pipeline. - Vulkan: Fix an incorrect lookup for vertex attributes which would fail if the attributes are not densely/linearly assigned.
- Vulkan: Fix incorrect fetch of task shader output when a payload is declared but not used in the emit instruction.
- Vulkan: Fix broken handling of
vkCmdPushDescriptorSetWithTemplateKHR
with arrayed descriptors. - Vulkan: Fix a potential crash if
OpAccessChain
has no indices specified. - GL: Fix crash when creating textures that are larger than 4GB.
- GL: Fix a the vertex input attributes for SPIR-V shaders not being displayed correctly.
- GL: Fix cubemap array shadow samplers not being correctly reflected.