* Normal resources have a single memory bind that can be added to frame references when the resource is. Sparse resources don't have that easy single mapping. * Calls to MarkResourceFrameReferenced with a 0 ResourceId aren't a real problem, but we have to be careful when dirtying resources. * We don't have to dirty memory that's sparsely bound as we'll dirty it as soon as its sparsely bound. We do have to worry about making sure that memory is correctly frame referenced. * To do this command buffers track the sparsemapping structures (will be created for all sparse resources) that are referenced underneath them. Then at queue submit time the current sparse mapping is iterated and all bound memory marked frame referenced. * For most cases where a buffer is bound or similar, we can directly add the sparsemapping from the resource record. For descriptor sets we must do this indirectly - by marking any bindframerefs in the descset record with a bit indicating that the associated resource is sparse, then at submit time when iterating the bindframerefs, taking any with the bit set and looking up its record to find the sparsemapping.
RenderDoc
Welcome to RenderDoc - a graphics debugger, currently available for D3D11 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** |
| OpenGL Pre-3.2 | No immediate plans | ✖️ | ✖️ |
| D3D10 | No immediate plans | ✖️ | ✖️ |
| D3D9 | No immediate plans | ✖️ | ✖️ |
| Mantle | Plans cancelled, redirected to Vulkan. | ✖️ | ✖️ |
| D3D12 | Planned for the future. | ✖️ | ✖️ |
| Vulkan | Planned for the future. | ✖️ | ✖️ |
- 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.