github baldurk/renderdoc v1.23
Version v1.23

latest releases: v1.35, v1.34, v1.33...
22 months ago

Version v1.23

This release comes with a number of optimisations for Vulkan and D3D12 captures, especially those with 'bindless' style approaches with many resources bound and accessible at once. There should be a general improvement of performance across capture and replay, if you find that you are having problems with slowdown do please get in touch so that I can investigate since I can only work with what I'm aware of.

In this version is also full support for vulkan source-level shader debugging, from any compiler that can produce NonSemantic.Shader.DebugInfo.100 debug annotations. On glslang this can be produced via the -gVS switch, and on dxc with -fspv-debug=vulkan-with-source. For more information consult your shader compiler's documentation.

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

Python API changes

  • VKDescriptorBinding.type has been removed as types are no longer uniform per-type with mutable descriptors. This element has been moved into VKBindingElement.type.

Features/Improvements

  • UI: When trying to connect to a remote host using an incompatible version, display the version it is running. This is only supported as of v1.23 and newer, older versions will all report as 'older than v1.23'.
  • UI: The buffer formatted allows stdint types like uint8_t or int32_t.
  • All: Add an in-application API function to set a title for an ongoing capture.
  • Linux: Use $HOME as a backup if getpwuid fails.
  • Vulkan/D3D12: Add a number of optimisations to D3D12 and Vulkan both during capture and on replay, to improve performance. This would affect programs using bindless and large number of resources most.
  • Vulkan/D3D12: When doing feedback on bindless resources, if a pixel shader is never invoked due to being offscreen/clipped, treat that as valid and display no resources as used instead of falling back to showing all resources.
  • Vulkan: Give a default name to un-named children in constant buffer structs.
  • Vulkan: Add support for extensions:
    • VK_EXT_mutable_descriptor_type
    • VK_AMD_memory_overallocation_behavior
    • VK_EXT_pageable_device_local_memory
  • D3D12: Relax the requirement for D3D12Core.dll to be signed by microsoft on trusted captures. This works around an issue where UE5.1 re-signed D3D12Core.dll as coming from epic, causing it to be rejected. The signature check will still be applied on files marked as untrusted e.g. downloaded from the internet.
  • OpenGL: Allow use of OVR extensions on desktop GL.
  • OpenGL: In the case that two different incompatibly-typed shader variables are both bound to the same texture slot, display this as an error in the pipeline state view.

Bugfixes

  • UI: Clear event browser find results correctly between opening captures.
  • UI: When viewing a texture as a buffer, ensure scalar packing is used for pretend formats like RGB.
  • UI: Display missing shader processing tool executables more clearly instead of listing them as having exited normally.
  • UI: Fix crash handler not properly running in official builds to catch and report crashes.
  • Linux: Fix a bug from KDE where injected code made OpenGL directly through linked function pointers and went into capturing hooking path.
  • Python: Return SSBO and atomic buffers in the read-write resources list for OpenGL.
  • OpenGL: Comply with overly strict pipeline matching rules for I/O variables when creating custom display shaders.
  • Vulkan: Fix a bug where resources that are completely overwritten by a direct command like copy/clear would not properly store their contents if they were accessed via shader before that in the same command buffer.
  • Vulkan: Explicitly fail vkCreateDevice when creating multiple simultaneous logical devices, which is legal but RenderDoc does not support.
  • Vulkan: Fix handling of beginning and ending dynamic rendering inside secondary command buffers.
  • Vulkan: Fix an issue with shader debugging across repeated function calls to the same function.
  • Vulkan: Fix calculation of scalar size of structs, which are not sized as a multiple of their alignment (i.e. no trailing padding).
  • Vulkan: Fix a potential crash when fetching pixel history when many fragments in the same event overwrite the desired pixel.
  • Vulkan: Fix a few cases where pNext structs with empty/do-nothing contents were not properly ignored.
  • Vulkan: Handle multiple streams properly when fetching transform feedback output from geometry shaders - only the rasterized stream is fetched.
  • Vulkan: Fix a crash on drivers with more than 3 queue family types.
  • Vulkan: Fix display of attachments in pipeline state view when they are not listed in order or have gaps.
  • Vulkan: Fix an error if an application passes a too-small array into vkEnumeratePhysicalDevices.
  • Vulkan: Fix a crash when replaying captures that use VkPipelineViewportDepthClipControlCreateInfoEXT.
  • Vulkan: Fix an error showing a discard pattern on D24X8 textures.
  • Vulkan: Fix a validation error providing instance divisors for non-instanced vertex attributes.
  • Vulkan: Fix a validation error with a missing Flat interpolator on added built-in inputs when patching SPIR-V.
  • Vulkan: Fix the pipeline state view not correctly showing depth biases.
  • D3D: Fix shader debugging ddx/ddy being flipped when sampling using implicit derivatives.
  • D3D: Sanitise invalid values being returned for resinfo due to marker/automatic values like 0 or 0xffffffff being used in desc structs.
  • D3D: Work around suspected AMD driver bug returning incorrect frontface data.
  • D3D11: Fix a problem where release builds would not properly fallback during load if debug layers were requested but not available.
  • D3D12: Fix a problem during shader debugging where incorrect root descriptors would be used when looking for root SRVs.
  • D3D12: In shader debugging fix handling of RANGE_OFFSET_APPEND in D3D12 when dealing with tables having multiple ranges of different types that could lead to incorrect descriptors being used.
  • D3D12: When shader debugging use depth value to better select which candidate fragment to debug.
  • D3D12: Fix calculation of strides when accessing root buffer descriptors as structured.
  • D3D12: Fix clamping of mip/slice count in pipeline state view from view desc structs.

Don't miss a new renderdoc release

NewReleases is sending notifications on new releases.