renderdoc
RenderDoc is a stand-alone graphics debugging tool.
A free graphics debugging tool that captures a single frame from your 3D app and lets you step through every GPU operation, textures, shaders, mesh geometry, and individual pixel history.
RenderDoc is a free graphics debugging tool built for developers who write programs that render 3D graphics. When a rendering bug appears (a mesh is the wrong shape, a texture is missing, a pixel is the wrong color), traditional debuggers are not much help because the problem happens on the GPU, not in normal code. RenderDoc solves this by capturing a single frame of the program's output and letting you inspect every step of how that frame was produced.
Once a frame is captured, you can examine the textures at each stage of the rendering pipeline, step through shaders as they process individual pixels, inspect mesh geometry before and after transformations, and view the exact state of the graphics card at any point during the frame. The tool also tracks pixel history so you can trace back exactly which draw call wrote a specific pixel and why it looks the way it does.
RenderDoc supports Vulkan, OpenGL (versions 3.2 through 4.6), OpenGL ES, and Microsoft's Direct3D 11 and 12 APIs. It runs on Windows, Linux, and Android. Support for Nintendo Switch is available separately through Nintendo's developer program.
Installation on Windows is a standard installer download. On Linux, prebuilt binaries are available as a tarball, and some distributions package it in their repositories. The source code is on GitHub if you want to build it yourself.
The tool is intended only for debugging programs you wrote yourself. Using it to capture commercial games or third-party software you did not create is explicitly not supported by the project.
RenderDoc is open-source under the MIT license. Documentation is available online, and there are YouTube videos covering the basics. There is also an IRC channel and a Discord server for questions.
Where it fits
- Capture a frame from your game or 3D app and step through shader execution to diagnose why a mesh or pixel looks wrong
- Inspect textures at each stage of the rendering pipeline to find where a texture goes missing or gets corrupted
- Trace the full history of a specific pixel to identify exactly which draw call wrote an incorrect color