RenderDoc Switch

From GameBrew
RenderDoc
Renderdocnx.png
General
Authorbaldurk
TypeDevelopments
Version1.27
LicenseMIT License
Last Updated2023/06/02
Links
Download
Website
Source

RenderDoc is a frame-capture based graphics debugger, currently available for Vulkan, D3D11, D3D12, OpenGL, and OpenGL ES development on Windows, Linux, Android, and Nintendo Switch™. It is completely open-source under the MIT license.

RenderDoc is intended for debugging your own programs only. Any discussion of capturing programs that you did not create will not be allowed in any official public RenderDoc setting, including the issue tracker, discord, or via email. For example this includes capturing commercial games that you did not create, or capturing Google Maps or Google Earth. Note: Capturing projects you created that use a third party engine like Unreal or Unity, or open source and free projects is completely fine and supported.

Installation

There are binary releases available, built from the release targets. It's recommended that if you're new you start with the stable builds. Nightly builds are available every day from the v1.x branch here if you need it, but correspondingly may be less stable.

To install on windows run the appropriate installer for your OS (64-bit | 32-bit) or download the portable zip from the builds page. The 64-bit windows build fully supports capturing from 32-bit programs.

On linux only 64-bit x86 is supported - there is a precompiled binary tarball available, or your distribution may package it. If not you can build from source.

User guide

Links:

Screenshots

renderdocnx2.pngrenderdocnx3.pngrenderdocnx4.pngrenderdocnx5.png

Media

RenderDoc - An overview (baldurkarlsson)

Changelog

v1.27

  • This release includes a number of bugfixes since v1.26, as well as support for the latest D3D12 SDK 1.610.1.
  • As always binary builds with installers, zips and tarballs are available on renderdoc.org.

Python API changes:

  • D3D12Sampler.borderColor has been split into D3D12Sampler.borderColorType and D3D12Sampler.borderColorValue, and similarly for VKSampler.borderColor into VKSampler.borderColorType and VKSampler.borderColorValue, to allow for integer border colour types.
  • D3D12RasterizerState.multisampleEnable and D3D12RasterizerState.lineRasterMode have been removed and replaced with D3D12RasterizerState.lineRasterMode of type LineRaster.

Features/Improvements:

  • D3D12: Add support for new SDK 1.610.1:
  • New state functionality
  • New sampler creation parameters and PSO chunks
  • New barrier API
  • All: Show explicit dropdown arrow for tool buttons with menus.
  • All: Report Windows 11 separately in analytics.
  • Vulkan & D3D12: Optimisations to capture time overhead and GPU Syncs.
  • D3D11: Disable query for undocumented internal D3D interface in composition API.

Bugfixes:

  • All: Fix potential crash when reading large amounts of data from sockets.
  • All: Fix potential crash when serialising strings if length is corrupted.
  • All: Fix potential crashes/fatal errors rendering 0x0 thumbnails.
  • All: Remove fatal errors in XML codec and have error handling for corrupted XML.
  • All: Sanitise strings printed when received from target control/remote server.
  • All: Save any capture changes (renames/bookmarks) to local file when remotely replaying.
  • UI: Fix potential race when destroying windows while command is in flight
  • Linux: Don't open symlinks when opening logfile.
  • Linux: Try to handle processes on linux that fork without exec.
  • Linux: Work around bash overriding getenv/setenv with custom implementation.
  • Android: Make timeouts waiting for process to start just depressingly high.
  • Android: Speculative fix for Android thread race condition.
  • Windows: Ignore windows.storage.dll which spams a huge number of LoadLibrary calls.
  • D3D: Fix shader debugging using wrong operand to look up resources in some gather4 opcodes.
  • D3D11: Fix handling of RestoreDeferredContextState during capture if state isn't restored.
  • D3D12: Add fatal error handling if a map fails during replay.
  • D3D12: Add GPU syncs between potential moves of work across different queues.
  • D3D12: Fix a bug with incorrect forward reference detection in DXIL.
  • D3D12: Fix a discrepancy in DXIL disassembly from dxc.
  • D3D12: Fix crash when D3D12 descriptor table is bound off the end of a heap.
  • D3D12: Handle some unusually formatted DXIL shaders with missing implicit pointer types.
  • OpenGL: Add workaround for Intel bug in pixel history.
  • OpenGL: Don't show stencil for non-final fragments.
  • OpenGL: Fix pixel history being affected by pixel pack/unpack state.
  • OpenGL: Fix pixel history not using full precision depth.
  • OpenGL: Fix pixel history on framebuffers that don't have stencil.
  • OpenGL: Fix reporting of 10:10:10:2 resource formats.
  • OpenGL: Fix some GL pixel history cases where not all events would be replayed correctly.
  • OpenGL: Fix state tracking issues in GL pixel history.
  • OpenGL: Handle drawbuffers when they aren't simple direct 1:1 with attachments
  • OpenGL: Work around nvidia bug with failing GLX query.
  • GLES: Fix requiring some proper GL GLSL extensions on GLES for blit shader.
  • GLES: Fix use of proper GL function that's not available on GLES.
  • GLES: Remove reset notification EGL context attribute preventing context sharing.
  • Vulkan: Add fallback for shader feedback on Intel GPUs without int64 support.
  • Vulkan: Disable buggy vulkan layers.
  • Vulkan: Don't include discard in resource usage until end of renderpass.
  • Vulkan: Fix a bug causing present fence extension to crash.
  • Vulkan: Fix a missing flush for mapped non-coherent memory.
  • Vulkan: Fix a potential GPU timeout on draws with huge number of instances with GS.
  • Vulkan: Fix an incorrect use of GetInstanceProcAddr when initialising vkCreateDevice.
  • Vulkan: Fix crashes for input structures with builtins.
  • Vulkan: Fix depth results for fragments in pixel history.
  • Vulkan: Fix detection of scalar packing from only matrix layout.
  • Vulkan: Fix pixel history on framebuffers that don't have stencil.
  • Vulkan: Fix separate stencil operations being applied properly with dynamic rendering.
  • Vulkan: Fix uint/int bindings being broken in custom shader templates.
  • Vulkan: Manually check and report depth bounds test in vulkan pixel history.
  • Vulkan: Work around further broken Intel occlusion queries in pixel history.

External links

Advertising: