While multi-core processors come as standard with modern personal computers,
graphics engines seemingly ignored this fact. Even the latest games use at most four
CPU cores, but this includes multi-threaded sound, physics and AI calculations. It
would seem that multi-threaded graphics is overly complicated or just plain impossible.
In 2008, Microsoft unveiled the eleventh version of Direct3D, which—as one of
its main features—now has a multi-threaded API. However, there are still no major
games with multi-threaded graphics to this day.
In the first part of my thesis, I’ll show the current commercially-available graphics
architecture and the evolution of graphics engines; highlighting the limits to multithreading.
Then I’ll demonstrate DirectX 11’s solution for multi-threaded rendering,
and my project.
The second section contains my engine’s detailed description, highlighting central
algorithms and detailing their implementation.
The third part contains measurements and their analyses concerning possible
performance gains by multi-threading, and situations where this technique is not
preferable. I’ll recommend a method for constructing efficient multi-threaded rendering
algorithms based on the measurement results.
The fourth part is a summary of the preceding parts, where I’ll show future
development opportunities for my engine.
The appendix contains a glossary.