Pipeline state object (PSO)
An immutable object that bundles nearly all of the GPU's fixed pipeline state — shaders, blending, depth test, vertex layout — into a single precompiled unit.
Older APIs like OpenGL and D3D11 let you flip render state one toggle at a time, after which the driver quietly recompiled and validated the combination at the first draw call — an unpredictable hitch mid-frame. Direct3D 12 (2015) and Vulkan inverted this: you declare the whole state up front as a pipeline state object, the driver compiles it once, and binding it at render time is a cheap pointer swap.
The cost is rigidity. Every unique shader-and-state combination is its own PSO, so an engine may need thousands, and they are best built at load time to avoid stutter when a new one appears mid-game. Mesh and compute pipelines have their own, simpler PSO variants.