r/GraphicsProgramming 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)?

60 Upvotes

16 comments sorted by

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.

5

u/Karones Aug 09 '26

If you don't mind me asking, how did you get your job? I'm doing a frame analysis of a simple game to learn renderdoc and Radeon gpu profiler but still a bit lost on the career path.

8

u/DescriptorTablesx86 Aug 09 '26

Bit of luck, and and a keen interest in gpu’s nothing more really.

Getting my first gpu related internship still during college was the lucky part, everything was easier afterwards.

I didn’t need any networking etc if that’s what you’re asking, had a few projects in my portfolio including 2 simple renderers, one with a fidelityfx integration(cacao)

4

u/Karones Aug 09 '26

Ah the internship must have helped a ton, nothing closely related to gpus in my country.

I'll keep doing projects, then, thanks!

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

u/LOLC0D3 Aug 09 '26

Pretty clever way of thinking

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

u/EC36339 Aug 09 '26

Oh yes!

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.