A High-Performance Software Graphics Pipeline Architecture for the GPU

Michael Kenzel, Bernhard Kerbl, Dieter Schmalstieg, and Markus Steinberger:
ACM Transactions on Graphics (SIGGRAPH'18), 2018

Software mipmapping on a Heart model
Scene geometry from the video game <em>Total War: Shogun 2</em> rendered with our software pipeline; <em>screenshot courtesy of The Creative Assembly; used with permission</em>
Smooth water surface using programmable primitive topology
Computation of screen-space derivatives on the Fairy Forest scene


In this paper, we present a real-time graphics pipeline implemented entirely in software on a modern GPU. As opposed to previous work, our approach features a fully-concurrent, multi-stage, streaming design with dynamic load balancing, capable of operating efficiently within bounded memory. We address issues such as primitive order, vertex reuse, and screen-space derivatives of dependent variables, which are essential to real-world applications, but have largely been ignored by comparable work in the past. The power of a software approach lies in the ability to tailor the graphics pipeline to any given application. In exploration of this potential, we design and implement four novel pipeline modifications. Evaluation of the performance of our approach on more than 100 real-world scenes collected from video games shows rendering speeds within one order of magnitude of the hardware graphics pipeline as well as significant improvements over previous work, not only in terms of capabilities and performance, but also robustness.


author = {Kenzel, Michael and Kerbl, Bernhard and Schmalstieg, Dieter and Steinberger, Markus},
title = {A High-Performance Software Graphics Pipeline Architecture for the GPU},
journal = {ACM Trans. Graph.},
issue_date = {November 2018},
volume = {37}, number = {4},
month = nov,
year = {2018},
articleno = {140},
numpages = {15},
doi = {10.1145/3197517.3201374},
publisher = {ACM},
address = {New York, NY, USA},