baldurk 1c44f91cb8 Change vulkan/D3D12 to always re-record any cmd buffers being submitted
* Previously we'd cache a copy of each command buffer at load time, and
  submit it any time we're not partially re-recording. This has a couple
  of drawbacks though:
  - Technically we do some things that invalidate those command buffers,
    like updating descriptor sets (with initial state application) and
    so for 100% correctness we'd need to re-record.
  - It also means that any edits we apply, like modified shaders, don't
    properly apply to the whole frame, they only apply to whichever
    command buffer is currently being partially recorded.
* We refactor out the 're-record all commands' behaviour previously
  reserved just for applying GPU counters, and use that for re-recording
  any command buffers that are wholly or partially submitted. Note that
  it's still true that only one primary and one secondary at most are
  actually *partially* re-recorded. The others are re-recorded in their
  entirety.
2017-12-11 19:37:40 +00:00
2017-11-03 15:54:57 +00:00
2017-11-03 15:54:57 +00:00
2017-11-08 18:24:41 +00:00
2017-11-18 00:17:06 +01:00

RenderDoc

Travis CI AppVeyor Coverity Scan MIT licensed

RenderDoc - a graphics debugger, currently available for Vulkan, D3D11, D3D12, and OpenGL development on Windows 7 - 10 and Linux.

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.

v1.x branch

You are currently viewing the work-in-progress v1.x branch. This branch is seeing active feature development preparing for v1.0. You can switch to the v0.x branch to get a more stable and reliable but older build, or choose a v0.x nightly build above.

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.* ✔️ ✔️
Vulkan Well supported, most features. ✔️ ✔️
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.
  • Currently the Qt UI is only used on linux. It is working well with a TODO list of remaining work. Work is on-going for it to replace the .NET UI on windows.

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.

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