Intel published a performance query extension support defined back in
2013. This is available on Windows & Linux (in the Mesa driver). This
should provide the same types of counters as the MDAPI backend for
DX11.
Frameretrace [1] (a fork/branch of Apitrace) uses the same extension.
v2: Fix build without OpenGL
Simplify logic to enable counters
Warn about non enabled counters on Linux/Mesa
Generate counter Uuid
v3: Turn asserts into errors
Don't load perf entry points manually
v4: More clang-format
v5: Fix some Windows conversion warnings
v6: Fix errors on Windows where the driver reports an error on
glGetPerfQueryInfoINTEL as a mean to say that the queryId cannot
be used through the extension
v7: clang-format
v8: Initialize variable passed by pointers to GL entry points
v9: Only try to use the INTEL_performance_query on Mesa, experience
shows the Intel Windows driver doesn't report anything useful.
[1]: https://github.com/janesma/apitrace/wiki/screen-shots
RenderDoc is a frame-capture based graphics debugger, currently available for Vulkan, D3D11, D3D12, OpenGL, and OpenGL ES development on Windows 7 - 10, Linux, Android, and Nintendo Switch™. It is completely open-source under the MIT license.
If you have any questions, suggestions or problems or you can create an issue here on github, email me directly or come into IRC or Discord to discuss it.
To install on windows run the appropriate installer for your OS (64-bit | 32-bit) or download the portable zip from the builds page. On linux there is a binary tarball available, or your distribution may package it. If not you can build from source.
- Downloads: https://renderdoc.org/builds ( Symbol server )
- Documentation: HTML online, CHM in builds, Videos
- Contact: baldurk@baldurk.org, #renderdoc on freenode IRC, Discord server
- Code of Conduct: Contributor Covenant
- Information for contributors: All contribution information, Compilation instructions, Roadmap
Screenshots
|
|
|---|---|
|
|
API Support
| Windows | Linux | Android | |
|---|---|---|---|
| Vulkan | ✔️ | ✔️ | ✔️ |
| OpenGL ES 2.0 - 3.2 | ✔️ | ✔️ | ✔️ |
| OpenGL 3.2 - 4.6 Core | ✔️ | ✔️ | N/A |
| D3D11 & D3D12 | ✔️ | N/A | N/A |
| OpenGL 1.0 - 2.0 Compat | ✖️ | ✖️ | N/A |
| D3D9 & 10 | ✖️ | N/A | N/A |
| Metal | N/A | N/A | N/A |
- Nintendo Switch™ support is distributed separately for authorized developers as part of the NintendoSDK. For more information, consult the Nintendo Developer Portal.
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.
Compiling
Building RenderDoc is fairly straight forward on most platforms. See Compiling.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 Developing-Change.md. All contribution information is available under CONTRIBUTING.md.
