* The D3D11 hazard tracking rules are then as follows:
- When binding a resource for read, if it is bound for write anywhere
then NULL is bound instead. If it's not, then any other read
references are preserved.
- When binding a resource for write, all other binds for read AND
write are forced to zero.
- The exception to the above: If a DSV is bound with depth read-only
then any read binds reading the depth channel remain bound. Likewise
for stencil read-only and stencil channel read binds.
- Special case: When binding RTVs and UAVs at the same time, if there
is a write overlap within that bind, the entire bind gets discarded
(including any non-overlapping binds) and state remains unchanged.
- When considering if a bind overlaps, it only overlaps if the view
in question covers an overlapping subresource range. In other words,
it is valid to have a write bind of mip 1 and a read bind of mip 0
at the same time (the classic case being mip generation).
* This commit fixes the second point, other write binds weren't being
NULL'd out. So binding a UAV to slot 0 then slot 1 in that order will
cause slot 0 to become unbound. Or binding to an RTV will unbind a
UAV or vice-versa.
RenderDoc
RenderDoc - a graphics debugger, currently available for Vulkan, D3D11, D3D12, and OpenGL development on windows.
If you have any questions, suggestions or problems or you can create an issue here on github, email me directly or come into IRC to discuss it.
- Downloads: https://renderdoc.org/builds
- Documentation: renderdoc.chm in builds, https://renderdoc.org/docs, http://www.youtube.com/user/baldurkarlsson/
- Contact: baldurk@baldurk.org, #renderdoc on freenode IRC
- Information for developing/contributing: CONTRIBUTING.md, Compilation instructions, Roadmap
- Code of Conduct: Contributor Covenant
Screenshots
|
|
|---|---|
|
|
API Support
| Status | Windows | Linux | |
|---|---|---|---|
| D3D11 | Well supported, all features. | ✔️ | ✖️ |
| OpenGL 3.2 core+ | Well supported, most features.* | ✔️ | ✔️ WIP UI** |
| Vulkan | Well supported, most features. | ✔️ | ✔️ WIP UI** |
| D3D12 | Well supported, most features. | ✔️ | ✖️ |
| OpenGL Compatibility, GLES | No immediate plans | ✖️ | ✖️ |
| D3D9 & 10 | No immediate plans | ✖️ | ✖️ |
| Metal | 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 UI is in progress, with some implementation notes on the wiki and a TODO list of remaining work.
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. Nightly builds are available every day from master branch here if you need it, but correspondingly may be less stable.
Documentation
The text documentation is available online for the latest stable version, as well as in renderdoc.chm in any build. It's built from restructured text with sphinx.
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.
Contributing & Development
Building RenderDoc is fairly straight forward. See CONTRIBUTING.md for more details.
I've added some notes on how to contribute, as well as where to get started looking through the code in CONTRIBUTING.md.