GPU readback
Copiare dati dalla GPU alla CPU: banale da scrivere, famigerato per bloccare la pipeline.
GPU e CPU di norma lavorano in modo asincrono: la CPU accoda i comandi e corre avanti, mentre la GPU resta indietro di un frame o più. Una lettura di ritorno rompe questo equilibrio: se la CPU vuole leggere un pixel renderizzato, il risultato di un compute o una occlusion query, deve attendere che la GPU abbia davvero finito, e la sincronizzazione può costare tutto il margine del frame. Le prime chiamate a glReadPixels erano tristemente note proprio per questo.
La soluzione è non leggere mai il frame corrente. Si copia in uno staging buffer e si recupera il risultato un paio di frame dopo, quando la GPU ha comunque superato quel punto; i ring buffer con più destinazioni di staging sono lo schema standard. GPU picking, screenshot ed esposizione automatica basata su istogramma si fondano tutti sul readback differito.