Introduction
RenderDoc is a free, open-source graphics debugger for Vulkan, Direct3D 11/12, OpenGL, and OpenGL ES. It captures individual frames from running applications and lets you inspect every draw call, texture, shader, and pipeline state in detail.
What RenderDoc Does
- Captures GPU frames from any supported graphics API
- Displays the full draw-call timeline with resource state at each step
- Lets you inspect and edit shaders live to test fixes
- Visualizes textures, buffers, and render targets at every pipeline stage
- Supports remote capture from Android devices and remote hosts
Architecture Overview
RenderDoc injects a capture layer into the target application at launch. This layer intercepts all graphics API calls, serializing them into a portable capture file (.rdc). The desktop UI then replays the capture on the host GPU, reconstructing the full pipeline state for every event.
Self-Hosting & Configuration
- Prebuilt binaries available for Windows and Linux from GitHub releases
- Build from source with CMake; requires Qt for the GUI and Python for scripting
- Android capture requires the RenderDoc replay server APK sideloaded onto the device
- Remote capture works over TCP between host and target machines
- Python scripting API allows automation of capture analysis workflows
Key Features
- Pixel history shows every draw that touched a given pixel
- Mesh viewer renders geometry at each draw call stage
- Shader debugger steps through HLSL, GLSL, and SPIR-V line by line
- Performance counters overlay for GPU timing analysis
- Cross-platform capture and replay across Windows, Linux, and Android
Comparison with Similar Tools
- NVIDIA Nsight — NVIDIA-only; RenderDoc works on any GPU vendor
- PIX — Windows and Xbox only; RenderDoc covers Linux and Android
- Intel GPA — Intel-focused; RenderDoc is vendor-agnostic
- apitrace — traces OpenGL calls to a log; RenderDoc provides full state inspection
- Xcode GPU Debugger — Apple platforms only; RenderDoc targets Vulkan and D3D
FAQ
Q: Can I use RenderDoc with Unreal or Unity? A: Yes. Both engines support RenderDoc integration for frame capture.
Q: Does it work on macOS? A: macOS support is limited since Apple does not expose Vulkan or D3D APIs natively.
Q: Can I automate capture analysis? A: Yes. RenderDoc exposes a Python scripting API for batch analysis.
Q: Is there a performance overhead when capturing? A: Minimal. The capture layer adds slight overhead only when a frame capture is triggered.