baldurk 702f487170 [Sparse #1] Track memory referencing of sparse resources into queues
* 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.
2016-02-07 18:45:37 +01:00
2015-09-15 23:11:07 +02:00
2016-02-07 18:42:49 +01:00

RenderDoc

Welcome to RenderDoc - a graphics debugger, currently available for D3D11 and OpenGL development on windows.

Quick Links:

Screenshots

Texture view Pixel history & shader debug
Mesh viewer Pipeline viewer & constants

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.

Languages
C++ 79.6%
C 16.6%
Python 2.5%
Objective-C++ 0.4%
HLSL 0.2%
Other 0.6%