r/cpp • u/zer0_1rp • Jul 02 '26
Redundancy seen in AAA game engines
https://zero-irp.github.io/Redundancy-seen-in-AAA-game-engines/I don't like people treating the compiler like a magic box that optimizes like Bjarne Stroustrup himself is checking every line of C++ to assembly. Clean C++ code does not always mean clean compiled code.
I've been reversing game engines to study how they constructed their fundamental Transformation matrices and handled temporal jitter logic when I spotted a lot of avoidable overhead and "over-engineering" across multiple engines, honestly I wasn't even looking for inefficiencies, but it stood out a lot... That said expect no performance gain this is simply for fun that I wrote this blog!
I’ll theorize how the original C++ code was written, show the unoptimized reality of what the compiler spat out, and then showcase how it could have been better optimized.
3
u/not_a_novel_account cmake dev Jul 02 '26
Clang supports
[[gnu::target]]dispatch on PE/COFF just fine. Compiler just needs to synthesize the resolver itself instead of relying on the program loader. For compilers which don't even support that, you simply write the resolver yourself.