baldurk 6c02222fd6 When serialising a clear, save view desc so we can recreate it if needed
* This is a bit convoluted so follow with me here...
* As an optimisation, when not capturing a frame we serialise clears as
  clears for resources and mark those resources as clean. This way if a
  resource is cleared, then used in the frame, we don't have to worry
  about fetching or storing its initial data - we just replay the clear
  once while initialising and we're done.
* The alternative here is to mark a resource dirty when it's cleared,
  and then we might have to read back and serialise a completely flat
  image - rather wasteful.
* The problem is that if the resource is referenced but its view isn't
  then the view will be trimmed from the capture and we don't have it
  around to actually perform the clear. This only started being a
  problem when views were tracked in their own separate records.
* We can't create a circular dependency from view -> resource -> view
  as that would create cycles and keep lots of things alive pointlessly.
  Instead we add serialisation of the resource & view descriptor so that
  we can recreate the view on demand if need be. This adds 32 bytes to
  each clear and since clears aren't hugely frequent it's not a big deal
2016-06-21 12:38:23 +02:00
2016-05-22 19:41:50 +02:00
2016-03-11 10:23:56 +08:00

RenderDoc

Travis CI AppVeyor Coverity Scan

Welcome to RenderDoc - a graphics debugger, currently available for D3D11, Vulkan 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**
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 CONTRIBUTING.md - also look at COMPILE.md for details on how to set up to build renderdoc.

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