Skip to content

Version v1.29

Compare
Choose a tag to compare
@baldurk baldurk released this 29 Sep 16:22
· 546 commits to v1.x since this release
v1.29
0202a06

Version v1.29

This release includes a number of bugfixes since v1.28, as well as improved handling of non-deterministic ExecuteIndirect calls on D3D12.

As always binary builds with installers, zips and tarballs are available on renderdoc.org.

An extra note for anyone with a fork or local changes to RenderDoc - the version of clang-format used upstream has been updated to 15.0. This may necessitate reformats of pending changes if you intend to upstream them.

Python API changes

  • ShaderProcessingTool.CompileShader has a new parameter spirvVer which can be specified to give the SPIR-V version to use when compiling. If left blank the existing default behaviour will be used. Shader reflection data with a SPIR-V version will have that listed under a new @spirver compile flag.

Features/Improvements

  • Refactored handling of ExecuteIndirect to more reliably replay the application's work even in the face of non-deterministic work. Executes with non-deterministic parameters will still not function properly anywhere that the draw parameters are referenced like the event browser, mesh viewer, etc. But selecting subsequent events in the command buffer will now replay the ExecuteIndirect faithfully.
  • The pixel history events still show background colours in part when the row is selected.
  • When editing SPIR-V shaders and recompiling them, wherever possible the same SPIR-V version will be used to recompile them. This is necessary when using features that target a minimum SPIR-V version.

Bugfixes

  • All: Correctly load 3D textures with mipchains in image viewer.
  • All: Fix memory overwrite when saving a single slice of a texture.
  • All: Fixed error message which sometimes prevented valid DDS files from being opened.
  • All: Prevent crash in capture connection windows during shutdown.
  • All: Try to work around Android devices that take many seconds to enumerate installed programs to reduce the chance of a time out, and don't treat package names as local filenames if the timeout is hit.
  • All: Don't allow shader debugging tooltip to show over the top of a context menu.
  • All: Prevent a potential crash if corrupted data was received over a socket connection.
  • All: Fix a potential crash on startup if file access failed to the config file.
  • All: Fix pixel history 'debug pixel' text being incorrect when listing primitive ID.
  • GL: Improve handling of uniform arrays of size one.
  • GL: Fix thumbnail generation sometimes inverting middle two lines of the capture thumbnail image.
  • GL: Changed resource preview tooltip to be multi-line instead of a single line.
  • GL: Corrected layered depth buffer texture pipeline state tooltip from incorrectly displaying slices.
  • GL: Try to prevent some crashes in cases where the GL driver fails to map a buffer.
  • Vulkan: Fix SPIR-V shader debugger for specialisation constants using OpLogicalNot.
  • Vulkan: Allow override of GPU driver to select software drivers like llvmpipe.
  • Vulkan: Fix SPIR-V parsing of OpExecutionModeId specifying compute threadgroup size.
  • Vulkan: Use up-to-date image layouts for processing pixel history, if images are transitioned immediately before use.
  • Vulkan: Fix a case where pixel history would break if a small number of draws had a large amount of overdraw each.
  • Vulkan: Work around an nvidia driver bug setting dynamic state in between binding identical static pipelines.
  • Vulkan: Handle non-sparsely resident images correctly.
  • Vulkan: Fix some indirect-count draws handling.
  • D3D: Improve hlsl shader source debug stepping when the source shader contains empty filename directives i.e. #line XXX "".
  • D3D: Be more robust in parsing DXBC containers with unexpected data.
  • D3D11: Improve pixel history handling of discarded fragments.
  • D3D11: Fix incorrect pipeline state tooltips for MSAA textures referencing mips that can't exist.
  • D3D11: Prevent overlays from being rendered incorrectly and causing stale data when selecting different events.
  • D3D11: Fix a problem where an application creating too many D3D11 state objects would not be able to release some and retry due to a cache not being cleared.
  • D3D12: Avoid potential crash in nvidia driver when setting 0 UINTs as root constants.
  • D3D12: Remove a spurious validation warning that could appear from internal RenderDoc use.
  • D3D12: Fix an incorrect check when handling new version 2 depth-stencil pipeline chunks.
  • D3D12: Make sure resource usage has the correct EID for trailing barriers in command buffers with no subsequent draws.
  • D3D12: Fix serialisation of GPU addresses being based on buffers, when D3D12 doesn't require or bounds check against buffers for addresses but only uses underlying heaps.
  • D3D12: Fix a potential problem with mapped CPU memory uploads not properly propagating before GPU work.