There's pretty much nothing worse in graphics programming, when you have a black screen and have no idea why. Renderdoc seeks to remedy this inability to debug the blackbox GPU APIs being interfaced with by capturing the context data and providing visualization tooling. I had a hard time finding any results for higher level advice on how to use Renderdoc with your OpenGL program, this tutorial is an attempt to fill that gap with some "quick start advice".

My first image shows some good recommended default settings to get an idea of what Renderdoc exposes. Getting the call stacks for each frame's draw calls is pretty amazing, and if you also enable `Ref all Resources` then you'll have a dump of the buffers / textures used in your program each frame.

One of the more useful features once you know you need it, is the buffer viewer. The official docs are fairly descriptive here. I found it useful when digging into headless compute applications. For instance, should you find that you need to manually set capture boundaries, there's also an in-application API exposed by Renderdoc. I wrote some python bindings on top of this with nanobind in order to interact w/my python application***.***

...

All rights reserved Benjamin Ahlbrand 2022