Pipeline state object (PSO)
Un oggetto immutabile che raggruppa quasi tutto lo stato fisso della pipeline della GPU — shader, blending, depth test, layout dei vertici — in un'unica unità precompilata.
API più vecchie come OpenGL e D3D11 permettevano di cambiare lo stato di rendering un'opzione alla volta, dopodiché il driver ricompilava e validava silenziosamente la combinazione alla prima draw call: un singhiozzo imprevedibile a metà frame. Direct3D 12 (2015) e Vulkan hanno invertito l'approccio: si dichiara l'intero stato in anticipo come pipeline state object, il driver lo compila una volta sola e associarlo in fase di rendering equivale a un semplice scambio di puntatore.
Il prezzo è la rigidità. Ogni combinazione unica di shader e stato è un PSO a sé, quindi un motore può averne migliaia, ed è meglio costruirli in fase di caricamento per evitare scatti quando ne compare uno nuovo durante il gioco. Le pipeline mesh e compute hanno varianti di PSO proprie e più semplici.