More actions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{Infobox Switch Homebrews | {{Infobox Switch Homebrews | ||
|title=RenderDoc | |title=RenderDoc | ||
|image= | |image=renderdocnx.png | ||
|description=RenderDoc is a stand-alone graphics debugging tool. | |description=RenderDoc is a stand-alone graphics debugging tool. | ||
|author=baldurk | |author=baldurk | ||
|lastupdated=2023/ | |lastupdated=2023/06/02 | ||
|type=Developments | |type=Developments | ||
|version=1. | |version=1.27 | ||
|license=MIT | |license=MIT | ||
|download=https:// | |download=https://renderdoc.org/builds | ||
|website=https://github.com/baldurk/renderdoc | |website=https://github.com/baldurk/renderdoc | ||
|source=https://github.com/baldurk/renderdoc | |source=https://github.com/baldurk/renderdoc | ||
|donation= | |donation= | ||
}} | }} | ||
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 [https://renderdoc.org/builds binary releases] available, built from the release targets. It's recommended that if you're new you start with the stable builds. [https://renderdoc.org/builds#nightly Nightly builds] are available every day from the v1.x branch here if you need it, but correspondingly may be less stable. | |||
RenderDoc is a graphics debugger | |||
To install on windows run the appropriate installer for your OS ([https://renderdoc.org/stable/latest/RenderDoc_latest_64.msi 64-bit] | [https://renderdoc.org/stable/latest/RenderDoc_latest_32.msi 32-bit]) or download the portable zip from the [https://renderdoc.org/builds 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 [https://renderdoc.org/stable/latest/renderdoc_latest.tar.gz binary tarball] available, or your distribution may package it. If not you can [https://github.com/baldurk/renderdoc/blob/v1.x/docs/CONTRIBUTING/Compiling.md build from source]. | |||
== | ==User guide== | ||
Links: | |||
*Stable and nightly builds - https://renderdoc.org/builds ([https://renderdoc.org/symbols Symbol server]) | |||
*Documentation - [https://renderdoc.org/docs HTML online], [https://renderdoc.org/docs/renderdoc.chm CHM in builds], [https://www.youtube.com/user/baldurkarlsson Videos] | |||
*Code of Conduct - [https://github.com/baldurk/renderdoc/blob/v1.x/docs/CODE_OF_CONDUCT.md Contributor Covenant] | |||
*Information for contributors - [https://github.com/baldurk/renderdoc/blob/v1.x/docs/CONTRIBUTING.md All contribution information], [https://github.com/baldurk/renderdoc/blob/v1.x/docs/CONTRIBUTING/Compiling.md Compilation instructions] | |||
*Community extensions - [https://github.com/baldurk/renderdoc-contrib Extensions repository] | |||
==Screenshots== | ==Screenshots== | ||
https://dlhb.gamebrew.org/switchhomebrews/ | https://dlhb.gamebrew.org/switchhomebrews/renderdocnx2.png | ||
https://dlhb.gamebrew.org/switchhomebrews/ | https://dlhb.gamebrew.org/switchhomebrews/renderdocnx3.png | ||
https://dlhb.gamebrew.org/switchhomebrews/ | https://dlhb.gamebrew.org/switchhomebrews/renderdocnx4.png | ||
https://dlhb.gamebrew.org/switchhomebrews/ | https://dlhb.gamebrew.org/switchhomebrews/renderdocnx5.png | ||
==Media== | |||
'''RenderDoc - An overview ([https://www.youtube.com/@baldurkarlsson/videos baldurkarlsson])'''<br> | |||
<youtube>EMFG5wmng-M</youtube> | |||
==Changelog== | ==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. | ||
* D3D12: | *As always binary builds with installers, zips and tarballs are available on [https://renderdoc.org/builds renderdoc.org]. | ||
* D3D12: | |||
* All: Fix | Python API changes: | ||
* All: Fix | *<code>D3D12Sampler.borderColor</code> has been split into <code>D3D12Sampler.borderColorType</code> and <code>D3D12Sampler.borderColorValue</code>, and similarly for <code>VKSampler.borderColor</code> into <code>VKSampler.borderColorType and VKSampler.borderColorValue</code>, to allow for integer border colour types. | ||
* All: | *<code>D3D12RasterizerState.multisampleEnable</code> and <code>D3D12RasterizerState.lineRasterMode</code> have been removed and replaced with <code>D3D12RasterizerState.lineRasterMode</code> of type <code>LineRaster</code>. | ||
* All: | |||
* All: | Features/Improvements: | ||
* All: | *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. | ||
* Android: | *All: Report Windows 11 separately in analytics. | ||
* D3D: Fix | *Vulkan & D3D12: Optimisations to capture time overhead and GPU Syncs. | ||
* | *D3D11: Disable query for undocumented internal D3D interface in composition API. | ||
* D3D12: Fix a | |||
* D3D12: | Bugfixes: | ||
* D3D12: Fix | *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. | ||
* Vulkan: Fix | *All: Save any capture changes (renames/bookmarks) to local file when remotely replaying. | ||
* Vulkan: Fix | *UI: Fix potential race when destroying windows while command is in flight | ||
* Vulkan: Fix | *Linux: Don't open symlinks when opening logfile. | ||
* Vulkan: Fix | *Linux: Try to handle processes on linux that fork without exec. | ||
* Vulkan | *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 <code>windows.storage.dll</code> 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 == | == External links == | ||
* | * Official website - https://renderdoc.org/ | ||
* GitHub - https://github.com/baldurk/renderdoc |
Revision as of 10:45, 4 Haziran 2023
RenderDoc | |
---|---|
General | |
Author | baldurk |
Type | Developments |
Version | 1.27 |
License | MIT License |
Last Updated | 2023/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:
- Stable and nightly builds - https://renderdoc.org/builds (Symbol server)
- Documentation - HTML online, CHM in builds, Videos
- Code of Conduct - Contributor Covenant
- Information for contributors - All contribution information, Compilation instructions
- Community extensions - Extensions repository
Screenshots
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 intoD3D12Sampler.borderColorType
andD3D12Sampler.borderColorValue
, and similarly forVKSampler.borderColor
intoVKSampler.borderColorType and VKSampler.borderColorValue
, to allow for integer border colour types.D3D12RasterizerState.multisampleEnable
andD3D12RasterizerState.lineRasterMode
have been removed and replaced withD3D12RasterizerState.lineRasterMode
of typeLineRaster
.
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
- Official website - https://renderdoc.org/
- GitHub - https://github.com/baldurk/renderdoc