Graphics CODEx

A collection of (graphics) programming reference documents

Pipelines

Overview

There are three major types of pipelines that we use in games:

:bulb:

There are other pipelines that some GPU’s expose, such as video encoding and decoding pipelines, but we tend to not really use those in games so we won’t be talking about those in these documents.

Stages

A pipeline can be divided into multiple stages. These stages can either be fixed function or programmable function.

Fixed Function

Fixed Function stages are stages that are controlled by the driver and often even have dedicated hardware control circuits in order to execute the operations that this stage is dedicated to. The programmer either has no control over this stage at all or only has controlled through a pre-defined set of state that is exposed through the graphics API.

Programmable Function

In contrast to this, Programmable Function stages are stages where the program can write small little bits of code, often in the form of a shader in order to dictate what operations this stage should perform. These stages are often the one where the graphics programmer has the most control.

Async Pipelines

Some hardware has the option to execute multiple commands on separate pipelines in an asynchronous manner.

For more information, see the Async pipelines chapter.

Pipelines

See the following chapters for more information about each pipeline:


Last modified on Tuesday 01 February 2022 at 17:38:29