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
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.
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. "
- 1. Aumento delle prestazioni di BCrypt
- 2. SqlCommand.Cancel() provoca un aumento delle prestazioni?
- 3. Buffering ad alte prestazioni per un flusso di randelli
- 4. L'utilizzo di un frammento di documento migliora davvero le prestazioni?
- 5. Ricompilazione delle dipendenze con Maven - possibile? Qualsiasi aumento di prestazioni?
- 6. Il caricamento lento è davvero pessimo?
- 7. Poche prestazioni in aumento con l'uso di più thread
- 8. Il CDATA è davvero necessario?
- 9. Ridurre il buffering video
- 10. Come funziona il buffering di pcap unix?
- 11. moltiplicazione della matrice parallelizzazione OpenMP da un ciclo triplo (problema di prestazioni)
- 12. Backbone.js è davvero un MVC?
- 13. __del__ è davvero un distruttore?
- 14. qual è il simbolo del triplo dollaro in jquery?
- 15. chi è il buffer setvbuf gratuito?
- 16. Qual è il miglior editor XLIFF gratuito?
- 17. FastCall è davvero più veloce?
- 18. JQGrid è gratuito?
- 19. SET NOCOUNT ON fa davvero molta differenza di prestazioni
- 20. Le prestazioni di Grails 2.0 sono davvero così basse?
- 21. Il vuoto è davvero non verificabile?
- 22. Qual è il dardo Rikulo davvero?
- 23. Qual è la complessità di questo ciclo triplo annidato?
- 24. La riduzione del numero di include/richiede un aumento delle prestazioni?
- 25. Esiste un trasformatore proxy gratuito?
- 26. Questo è davvero DDD?
- 27. Stopwatch è davvero rotto?
- 28. WebClient.DownloadFileAsync è davvero lento?
- 29. AngularJS è davvero MVC?
- 30. Textarea Aumento di altezza