Introducing the Programmable Vertex Pulling Rendering Pipeline

Christophe Riccio, Sean Lilley · 2018

This chapter presents the Programmable Vertex Pulling Rendering Pipeline, which can render more complex scenes by significantly reducing the CPU overhead caused by resource switching between draw calls. It proposes new API directions to take advantage of to create real-time scenes with yet unreached levels of complexity. On the other hand, the Programmable Vertex Fetching stage uses the vertex shader stage to index into shader storage buffers or texture buffers to manually compose each vertex instead of using the vertex array object (VAO). Using Programmable Draw Dispatching is an interesting step but it can show some limitations as soon as the scene contains meshes with multiple vertex formats. To generate the DrawID, the proposed solution is to store it in a 32-bit integer vertex attribute. This DrawID is a bit-field where some bits are used to encode the vertex format ID and the rest of the bits are used to index the first vertex of a draw.

Read the paper · More papers on PaperTik