It works this way: The GameEngine stored the original shader blob on disk. Than we add the path to that file to the D3D_BLOB_PRIVATE_DATA section of the shader blob. After that we can strip the Debug information with D3DCOMPILER_STRIP_DEBUG_INFO. Renderdoc will first check if the shader already has debug information. If it cannot find the PDB in the shader blob it will try to look for a PrivateDataSection. If there is a valid file path in the PrivateDataSection it will search for debug information in there. If it finds valid debug information it will replace the entire shader blob with the one loaded from disk.
RenderDoc
Welcome to RenderDoc - a graphics debugger, currently available for D3D11, Vulkan and OpenGL development on windows.
Quick Links:
- Downloads: https://renderdoc.org/builds
- Documentation: renderdoc.chm in the build, or http://docs.renderdoc.org/
- Tutorials: There are some video tutorials on Youtube: http://www.youtube.com/user/baldurkarlsson/
- Email contact: baldurk@baldurk.org
- IRC channel: #renderdoc on freenode
- Roadmap/future development: Roadmap
- Starting place for developing/contributing: CONTRIBUTING.md
- How to compile: COMPILE.md
Screenshots
|
|
|---|---|
|
|
API Support
| Status | Windows | Linux | |
|---|---|---|---|
| D3D11 | Well supported, all features. | ✔️ | ✖️ |
| OpenGL 3.2 core+ | Well supported, most features.* | ✔️ | ✔️ No UI** |
| Vulkan | Well supported, most features. | ✔️ | ✔️ No UI** |
| D3D12 | Planned for the future. | ✖️ | ✖️ |
| OpenGL Pre-3.2 | No immediate plans | ✖️ | ✖️ |
| D3D10 | No immediate plans | ✖️ | ✖️ |
| D3D9 | No immediate plans | ✖️ | ✖️ |
- D3D11 has full feature support and is stable & tested. Feature Level 11 hardware is assumed - Radeon 4000/5000+, GeForce 400+, Intel Ivy Bridge, falling back to WARP software emulation if this hardware isn't present.
- *OpenGL is only explicitly supported for the core profile 3.2+ subset of features, check the OpenGL wiki page for details.
- **A Qt version of the UI is planned, with some implementation notes on the wiki.
Downloads
There are binary releases available, built from the release targets. If you just want to use the program and you ended up here, this is what you want :).
It's recommended that if you're new you start with the stable builds. Beta builds are available for those who want more regular updates with the latest features and fixes, but might run into some bugs as well. Nightly builds are available every day from master branch here if you need it.
Documentation
As mentioned above there are some youtube videos showing the use of some basic features and an introduction/overview.
There is also a great presentation by @Icetigris which goes into some details of how RenderDoc can be used in real world situations: slides are up here.
License
RenderDoc is released under the MIT license, see LICENSE.md for full text as well as 3rd party library acknowledgements.
Building
Building RenderDoc is fairly straight forward. See COMPILE.md for more details.
Contributing & Development
I've added some notes on how to contribute, as well as where to get started looking through the code in COMPILE.md - check there for more details on how to set up to build renderdoc and where to start contributing to its development.