Game Development Reference
Introducing the Programmable
Vertex Pulling Rendering Pipeline
Christophe Riccio and Sean Lilley
We believe that today's GPUs provide us high computing power and enough
bandwidth to create scenes with much higher complexity than what is currently
found in most real-time applications. Unfortunately, scene complexity is mainly
bound by the CPU, which limits the number of draw calls an application can
submit per frame.
In this chapter we introduce what we call the Programmable Vertex Pulling
Rendering Pipeline , which aims to remove the CPU bottleneck by moving more
show a way to increase the number of draws per frame leading to scenes with a
higher level of complexity.
First, we describe the current limitations of existing draw submission designs.
Then, we present the Programmable Vertex Pulling Rendering Pipeline. Finally,
we propose new API directions we could take advantage of to create real-time
scenes with yet unreached levels of complexity.
We base this study on AMD's Southern Islands architecture used for both the
AMD Radeon HD 7000 series and the AMD FirePro W series. Though we discuss
the hardware design and driver stack details of this architecture, we expect that
these concepts would be similar on other post-OpenGL 4 GPUs.
All the performance tests in this chapter have been measured on an AMD
FirePro W8000 graphics card with Catalyst 9.01 drivers running on an AMD
Phenom X6 1050T and 8 GB of memory.