2010-06-21 18 views
8

Quindi ho letto molto su openGL e gpus e la grafica in generale, e il buffering triplo viene spesso citato in termini semi-frequenti come un aumento di prestazioni gratuito. So perché aiuta; in effetti, puoi fare v-sync senza limitarti a una scelta framerate di 60 o 30 o 20 o 15 o ecc., in modo da poter ottenere, per esempio, 55 fps. Ma c'è davvero un costo per questo? Intuitivamente, mi aspetterei un triplo buffering per ritardare l'output di un frame, aggiungendo un ritardo molto piccolo a tutto.Il triplo buffering è davvero un aumento di prestazioni gratuito?

risposta

6

A 55 FPS, un fotogramma è un po 'meno di 20 ms. Quindi non è abbastanza gratuito, ma vale quasi sempre la pena.

A 15 FPS, tuttavia, può essere piuttosto evidente. (BTW, questo è un laptop POS. La maggior parte dei giochi 3D è veloce.)

Alcune persone notano il ritardo, specialmente con frame rate inferiori e talvolta il buffering triplo non funziona come previsto. (In OpenGL, in particolare, qualcosa che non è supportato bene dall'hardware può ricorrere all'emulazione del software (potenzialmente molto lento). Non dovrebbe essere un grosso problema al giorno d'oggi, ma eh.) Quindi la maggior parte dei programmi che usano anche il buffering triplo includere un'opzione per disabilitarlo. Puoi prendere in considerazione di fare lo stesso.

5

Una citazione dall'eccellente libro "Real-Time Rendering" (http://www.realtimerendering.com/) di Akenine-Möller e altri, pagina 835, che riassume molto bene ciò che hai già suggerito nella risposta alla tua stessa domanda, considerando il ritardo:

"triplo buffering ha un grande vantaggio rispetto il doppio buffer. Utilizzando esso, il sistema può accedere al buffer in attesa in attesa che la verticale ritracciamento. Con il doppio buffer, uno swap può stallo la pipeline grafica. [... ] Lo svantaggio del triplo buffering è che la latenza aumenta fino a un intero fotogramma . Questo aumento ritarda la reazione agli input dell'utente, come le sequenze di tasti e movimenti del mouse o del joystick. "