Version v1.38
This version contains a number of new bugfixes and some usability improvements.
As always binary builds with installers, zips and tarballs are available on renderdoc.org.
Python API changes
- No breaking changes to the Python API.
Features/Improvements
- UI: RGB casts of values in the Shader Debugger watch window or Buffer Viewer now treat values as linear, not sRGB.
- UI: Constant buffer variables can now be shown with an RGB swatch using the
[[rgb]]
annotation. - UI: The texture goto-pixel window no longer closes when the mouse leaves the window, it closes when the window loses focus.
- UI: Shader search paths now have a 'recursive' toggle which defaults to on. When unchecked, this path will never be searched recursively for files to locate missing separate debug information. This can be useful for slow shared drives or very large folders with many files, where exact filename matches are expected as standard.
- AMD: Update version of GPUPerfAPI to 4.0.
- Android: Add specific error message for broken devices.
- D3D12: When reflection information is stripped from an SM5 shader and separate debug info is available in a pdb, try to regenerate best-effort reflection with the debug data available.
- D3D12: Improve custom DXIL disassembly for resource/cbuffer array access.
- D3D12: Improve matching of separate debug information and add some new heuristics to match PIX's undocumented search behaviour.
- Vulkan & D3D12: Improve error messages when mesh shader output comes back as invalid, in case of application errors.
- Vulkan: Remove change of pipeline cache UUID to allow applications to preserve pipeline cache between running with and without RenderDoc.
- Vulkan: Implement support for extensions:
- VK_KHR_maintenance5
- VK_EXT_image_compression_control
- VK_EXT_image_compression_control_swapchain
Bugfixes
- UI: Fixed Shader Debugger tooltips inconsistent behaviour for array variables .
- UI: Ensure that copy-pasted strings in command line can't include newlines.
- UI: Fix target control connections not being made successfully if remote server is using an alternate port.
- D3D: Fix crash with out of bounds clamping behaviour when debugging SM5 shaders with loads/stores near the end of buffers.
- D3D12: Fixed array variables being displayed as matrices when debugging SM6 shaders.
- D3D12: Fix global array value loads retrieving the wrong values when debugging SM6 shaders.
- D3D12: Fix initialiser values for mutable global variables not properly being set when debugging SM6 shaders.
- D3D12: Fix some cases of debug data for complex types not being properly processed when debugging SM6 shaders.
- D3D12: Fix shader debugging loads from UAVs created with UNKNOWN format when underlying resource format should be used when debugging SM6 shaders.
- D3D12: Fix cases where source-level debugging would not properly be activated when source information is available in separated PDBs.
- D3D12: Fix debugging pixel shaders failing when mesh shaders are in use.
- D3D12: Fix extremely slow loading and debugging of SM5 shaders with arrays of structures in the debug data.
- D3D12: Fix debug data being incorrect for array-of-struct variables in SM5 shaders.
- D3D12: Fix calculation of derivatives after a discard when debugging SM6 shaders.
- D3D12: Fix a crash when capturing application using sparse MSAA textures.
- D3D12: Fix incorrect handling of resources with
ALLOW_SIMULTANEOUS_ACCESS
flag which are discarded. - D3D12: Improve handling of NULL initialisers when debugging SM6 shaders.
- Vulkan: Fix dynamic storage buffers not properly reflecting dynamic offsets in pipeline state view.
- Vulkan: Fix some situations where shader debugging would be wrong due to incorrect derivative readback.
- Vulkan: Fix mesh output data being wrong when vertex attribute offset is larger than its stride.
- Vulkan: Fix overlay usage when using
EXT_shader_object
. - Vulkan: Fix crash on Intel when running pixel history due to driver workaround.
- Vulkan: Fix crash debugging pixel shader with 16-bit input.
- Vulkan: Fix incorrect mesh data generated from vertex shader with 16-bit output.
- Vulkan: Fix sparse buffers used only via bufferDeviceAddress having incorrect data.
- Vulkan: Fix incorrect flags being used for internal pipelines when recompiling
EXT_graphics_pipeline_library
pipelines. - Vulkan: Fix centroid interpolator not being stripped for patched compute shader when fetching mesh output data.
- Vulkan: Don't force buffer device address flags for image dedicated memory allocations.
- Vulkan: Fix resource usage not being propagated for secondary command buffers if dynamic rendering is used.
- Vulkan: Fix incorrect display of other instances/previous draws when selected if mesh shaders are used.
- Vulkan: Fix image states not being correctly tracked in some case with secondary command buffers.
- Vulkan: Fix crash when using manual swapchain image creation.
- Vulkan: Fix crash displaying YUV textures when using remote replay (e.g. on Android).
- Vulkan: Fix a case where a
pNext
chain is modified in user memory instead of locally patched memory. - Vulkan: Fix shader debugging when using class member functions.
- Vulkan: Fix a case where if the same descriptor set is bound to compute and graphics with dynamic offsets the offsets could be applied twice when shader debugging.
- OpenGL: Fix incorrect display for quad overdraw overlay when using renderbuffer for depth.
- OpenGL: On windows try to prevent hooking problems if libraries are loaded and unloaded repeatedly.
- OpenGL: Fix emulation of
glCopyImageSubData
failing for some compressed texture formats and dimensions. - OpenGL ES: Fix custom visualisation shaders not compiling.