explaingit

baldurk/renderdoc

10,696C++Audience · developerComplexity · 4/5LicenseSetup · moderate

TLDR

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.

Mindmap

mindmap
  root((repo))
    What it does
      Frame capture
      GPU state inspection
      Pixel history tracing
    Capabilities
      Shader step-through
      Texture inspection
      Mesh geometry view
    API Support
      Vulkan and OpenGL
      Direct3D 11 and 12
      OpenGL ES
    Platforms
      Windows and Linux
      Android support
    Resources
      YouTube tutorials
      Discord community
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Capture a frame from your game or 3D app and step through shader execution to diagnose why a mesh or pixel looks wrong

USE CASE 2

Inspect textures at each stage of the rendering pipeline to find where a texture goes missing or gets corrupted

USE CASE 3

Trace the full history of a specific pixel to identify exactly which draw call wrote an incorrect color

Tech stack

C++VulkanOpenGLDirect3D

Getting it running

Difficulty · moderate Time to first run · 30min

On Windows, install via the standard installer, on Linux, use prebuilt binaries or build from source. The app being debugged must be one you wrote, capturing commercial software is not supported.

Free to use, modify, and distribute for any purpose under the MIT license.

In plain English

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.

Copy-paste prompts

Prompt 1
I'm getting a black mesh in my Vulkan renderer and I want to use RenderDoc to find the problem. Walk me through capturing a frame, finding the draw call that renders my mesh, and inspecting the vertex and fragment shader outputs.
Prompt 2
How do I use RenderDoc pixel history to figure out why a specific pixel on screen is the wrong color? Walk me through selecting the pixel and reading the draw call list.
Prompt 3
I have a missing texture in my OpenGL application. Show me how to use RenderDoc to capture a frame and inspect the texture bindings at the draw call where the mesh should be textured.
Prompt 4
Walk me through attaching RenderDoc to a running Direct3D 11 application, capturing a single frame, and viewing the render target at each pipeline stage.
Prompt 5
In RenderDoc, how do I step through a fragment shader as it processes a specific pixel? I want to see the intermediate values computed by my GLSL code.
Open on GitHub → Explain another repo

← baldurk on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.