Simplified OpenGL Graphics Pipeline

Square boxes denote programmable stages; boxes with rounded corners represent stages that have fixed, non-programmable implementations in OpenGL 4.5.

Primitve assembly is required after each of the first four programmable stages.

This figure was taken from: OpenGL SuperBible, Graham Sellers, Richard S. Wright, and Nicholas Haemel, 6th edition, 2014.