Quando la GPU visualizza un nuovo frame sullo schermo, trasferisce l'immagine tramite il cavo HDMI (o qualsiasi altro tipo) in un processo chiamato "scanout". I pixel vengono inviati in ordine lineare, generalmente da sinistra a destra e dall'alto verso il basso. Il processo è programmato in modo tale da richiedere la maggior parte della durata di un intervallo di aggiornamento. Ad esempio, a 60Hz, un frame è ~ 17 ms. Ogni scanout richiederà probabilmente circa 15-16 ms, con 1-2 ms di vblank in mezzo (i valori esatti variano in base al display e alla modalità video).
Tradizionalmente, il rendering è a doppio buffer, il che significa che ci sono due buffer memorizzati nella memoria GPU: uno che è attualmente sottoposto a scansione ("buffer anteriore") e uno a cui viene eseguito il rendering ("buffer posteriore"). Ogni fotogramma, i due vengono scambiati. La GPU non esegue mai il rendering sullo stesso buffer che viene scansionato, il che impedisce artefatti a causa della potenziale visualizzazione di parti di un frame incompleto. Tuttavia, un effetto collaterale di ciò è l'aumento della latenza, poiché ogni frame può rimanere nel buffer per diversi ms prima che inizi la scansione.
La realtà virtuale è molto sensibile alla latenza, quindi non è desiderabile. Un approccio alternativo è il rendering diretto al buffer anteriore, ma il timeout delle cose con molta attenzione in modo da aver reso ogni riga dell'immagine poco prima che lo scanout arrivi lì. Si chiama "scanline racing" o "racing the beam" (il "fascio" che si rifà ai tempi di CRT di un tempo). Ciò richiede più o meno il rendering dell'immagine nell'ordine di scanline, ovvero nello stesso ordine di scansione dei pixel. Non deve essere letteralmente reso una riga alla volta: potrebbe essere reso in strisce sottili alte pochi pixel, ma deve essere fatto in ordine, poiché non è possibile tornare indietro e modificare i pixel che hanno già stato scansionato.
Ci sono molti svantaggi di questo approccio; ha requisiti di prestazione molto rigorosi, deve essere cronometrato con molta attenzione rispetto a vsync e complica notevolmente il processo di rendering. Ma in linea di principio può radere millisecondi dalla tua latenza, motivo per cui le persone VR sono interessate a questo.