Pipeline state object (PSO)
Niemutowalny obiekt, który łączy niemal cały stały stan potoku GPU — shadery, mieszanie, test głębi, układ wierzchołków — w jedną prekompilowaną jednostkę.
Starsze API, takie jak OpenGL i D3D11, pozwalały przełączać stan renderowania po jednej opcji, po czym sterownik po cichu rekompilował i walidował kombinację przy pierwszym wywołaniu rysowania — nieprzewidywalna czkawka w środku klatki. Direct3D 12 (2015) i Vulkan odwróciły to podejście: cały stan deklaruje się z góry jako pipeline state object, sterownik kompiluje go raz, a podczas renderowania jego wiązanie to tania podmiana wskaźnika.
Ceną jest sztywność. Każda unikalna kombinacja shadera i stanu to osobny PSO, więc silnik może potrzebować tysięcy, a najlepiej budować je przy ładowaniu, by uniknąć przycięć, gdy w trakcie gry pojawi się nowy. Potoki mesh i compute mają własne, prostsze warianty PSO.