Version v1.31
This version contains some quality of life fixes and expanded SPIR-V debugging support, as well as a new mesh visualisation feature. There are also some important bugfixes for D3D11 and mesh shader usage, and a workaround for a recent nvidia driver bug.
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.
Main highlights
-
The UI now has a configuration option to set consistent formatting of byte offset and size fields in the UI.
By default such fields are displayed as decimal numbers up to a threshold value and then larger values are displayed as hexadecimal, but with the configuration option it can be forced to be either always decimal numbers or always hexadecimal.
-
The SPIR-V debugger now supports debugging of shaders using the buffer device address extension.
Pointers in this fashion are displayed the same way as GPU pointers elsewhere in the UI, with a resource link that jumps to a buffer viewer with the given pointer type. -
Added a new 'mesh exploder' visualisation feature contributed by Dan Hawson which allows visualisation of mesh topology via a tweakable per-vertex offset. This can show poor or good vertex sharing by revealing vertices which share positions but are distinct.
Python API changes
SolidShade
enum has been renamed toVisualisation
, and similarly thesolidShadeMode
member ofMeshDisplay
is renamed tovisualisationMode
.
Features/Improvements
- UI: Messages suggesting enabling API validation for more error information now direct to
Open Capture with Options
to discourage permanently enabling validation. - UI: Only show byte range for a single subresource when viewing texture as buffer.
- UI: When switching between mesh shader draws and compute shader dispatches, preserve pipeline state flowchart.
- Vulkan: Fail instance creation if RenderDoc layer is explicitly enabled.
- Vulkan: Add support for 64-bit selectors to OpSwitch statements.
- Vulkan: When 'ref all resources' is enabled, ensure internal buffers aren't included.
- D3D11: Improve handling and checking for unsupported sparse textures.
- Android: Add workaround for broken Android devices that don't properly support layers in apks.
Bugfixes
- UI: Fix re-calculation of current 3D slice when moving up and down mip levels.
- UI: Fix a crash after a device lost when using mesh shaders.
- UI: Fix some tool buttons being unavailable in raw buffer viewer.
- UI: Fix incorrect error about invalid size when opening DDS files.
- UI: Fix incorrect tooltip on vulkan pipeline state shader save button.
- UI: Fix a case where the UI layout would corrupt itself if the event browser was closed when starting the program.
- Vulkan: Fix incorrect results when shader debugging non-float texture lookups.
- Vulkan: Fix depth/stencil discard patterns being incorrectly shown for aspects that are not discarded.
- Vulkan: Fix incorrect image layouts being tracked when multiple command buffers are submitted together.
- Vulkan: Fix a potential crash when using the triangle size overlay.
- Vulkan: Fix Depth overlay writing to pixels outside of drawcall for shaders exporting depth.
- Vulkan: Fix task payload readback on mesh shaders for array types.
- Vulkan: Fix an error fetching mesh output from mesh shaders if specialisation constants are used.
- Vulkan: Fix handling of mesh shader draws in pixel history.
- Vulkan: Don't generate invalid SPIR-V and potentially crash when patching shaders that contain debug information.
- Vulkan: Fix incorrect error debugging SPIR-V when writing to out of bounds Matrix element.
- Vulkan: Fix loading incorrect data when reading a row major matrix from a buffer.
- Vulkan: Fix wireframe overlay when drawcall modifies polygonMode dynamic state.
- Vulkan: Fix an invalid access when using mesh shaders with inline shader created in pipelines.
- Vulkan: SPIR-V debugger fix for OpBitcast from Vector to Scalar.
- Vulkan: When creating mesh shader output fetch pipelines, preserve required subgroup size.
- Vulkan: Fix a pixel history crash when using dynamic rendering and the target texture is bound as a storage image.
- Vulkan/D3D12: Fix incorrect indirect parameters being used for displaying mesh output data from mesh shaders.
- D3D: Fix mismatching shader interfaces if a semantic is used alone but with a non-zero index (i.e.
COLOR1
with noCOLOR0
). - D3D11: Fix crash in pipeline state viewer when displaying an empty binding after using the depth overlay and loading multiple captures.
- D3D11: Fix crash when discarding dynamic staging buffers.
- D3D12: Fix a potential crash showing whole-pass mesh output with mesh shaders.
- D3D12: Fix depth overlay writing to pixels outside of drawcall for shaders exporting depth.
- D3D12: Fix a crash when examining a mesh shader draw where an amplification shader is bound but its payload is unused.