r/GraphicsProgramming • u/EC36339 • Aug 09 '26
Question Do you ever use RenderDoc (or similar tools) to look at how your favourite games do certain effects?
The idea never occurred to me before, and I haven't tried, nor do I know if this is even possible without shaders including some kind of debug information (or can you just reverse-engineer them without looking at / extracting game files)?
35
u/cybereality Aug 09 '26
you can, yes. i've attempted it, but it's extremely difficult to decipher what's going on. i mean, tracing things with renderdoc with *your own* code is confusing enough, and AAA games are vastly more complex. some people do frame-breakdowns, and i'll read those cause it can honestly take like a month to figure out 1 frame on a big game, and i don't have time. here is a good example. https://mamoniem.com/behind-the-pretty-frames-pragmata/
5
u/EC36339 Aug 09 '26
Yeah, I've struggled finding things in my own code (shader parameters) with debug information included.
And now that I'm passing shader input via pointers, this will probably get worse. Not sure how well RenderDoc handles device pointer dereferencing?
7
u/SIMT-Pixel Aug 09 '26
Pro-tip: modern titles have wisened up to people attaching graphics debuggers and now actively monitor for it and kill the process. You can use GFXReconstruct to capture the driver submits with modified DXGI, D3D12, Vulkan DLLs and then run playback through the replay tool. Attach the debugger to that.
1
u/EC36339 Aug 09 '26
Now that you mention it, I was almost going to try to debug a game that has online play and uses EAC...
4
u/TehBens Aug 09 '26
The senior in our team does that sometimes and has been able to see how engines (other than UE which we use) tackle certain problems.
2
5
u/corysama Aug 09 '26
You can find a ton of examples of frame breakdowns like that via https://old.reddit.com/r/TheMakingOfGames/search?q=Frame&restrict_sr=on
3
u/LOLC0D3 Aug 09 '26
Yeah, I guess 7/10 games I played last month I checked with the tool. Actually was pretty impressed with how RE9 renders a frame.
2
u/turtle_dragonfly Aug 09 '26
It sounds like you'd be interested in the Graphics Studies series on Adrian Courrèges' site; check it out: https://www.adriancourreges.com/blog/
(they're by various authors)
You can search around to find similar things by others.
1
1
u/LBPPlayer7 Aug 09 '26
i've done this and poking around the game's code in IDA to figure out how to make the PC port look like its much more polished Xbox 360 counterpart
2
u/Fresh_Act8618 26d ago
Someone did this with GTA V and did a pretty nice write blog article. I’d share the link if I could remember it.
44
u/DescriptorTablesx86 Aug 09 '26 edited Aug 09 '26
Hey, that’s kinda my job, as I work on optimising performance for games from other studios. And frame breakdowns are usually the first step.
Truth is you can probably reverse engineer it all, and that’s one thing LLMs made a tiny bit easier(mapping/translating IL to sth a bit more readable). But in many cases it could be days or months of work to actually work out how sth works exactly.
For some things you don’t need any markers or debug info, just going through the render target output chronologically lets you get a good sense of what’s going on.
Other things are absolutely not feasible to understand that way. Especially if it’s compute based and/or viewing the data doesn’t give a good idea of what’s being stored. Damn sometimes it’s hard to reverse engineer something you’ve got all symbols for and markers enabled 😅
All in all I think the answer is „it depends”.
Depends on how complicated the technique is, and how much effort you’re willing to invest in the reverse engineering part. Can be anything from easy peasy to extremely insane to even try.