2010-06-21 18 views
8

He leído mucho sobre openGL y gpus y gráficos en general, y el triple buffer se menciona semi-frecuentemente como un aumento de rendimiento libre. Sé por qué me ayuda; en efecto, puede hacer v-sync sin limitarse a una selección de velocidad de fotogramas de 60, 30, 20 o 15, etc., por lo que puede lograr, por ejemplo, 55 fps. Pero, ¿hay realmente un costo para esto? Intuitivamente, esperaba que el triple almacenamiento en búfer retrasara la salida en un cuadro, agregando un retraso muy pequeño a todo.¿El triple buffer es realmente un impulso de rendimiento gratuito?

Respuesta

6

A 55 FPS, un fotograma es un poco inferior a 20 ms. Por lo tanto, no es muy gratis, pero casi siempre vale la pena el costo.

A 15 FPS, sin embargo, puede ser bastante notorio. (Por cierto, este es un portátil POS. La mayoría de los juegos en 3D corren así de rápido para mí. Algunos incluso más lentos.)

Algunas personas notan el desfase, especialmente a velocidades de cuadro más bajas, y en ocasiones el triple buffer no funciona tan bien como esperado. (En OpenGL, en particular, algo que el hardware no admite bien puede recurrir a la emulación de software (potencialmente muy lenta). No debería ser un gran problema en estos días, pero eh.) Por lo tanto, la mayoría de los programas que usan triple buffer también incluye una opción para deshabilitarlo. Es posible que desee considerar hacer lo mismo.

5

Una cita del excelente libro "Real-Time Rendering" (http://www.realtimerendering.com/) de Akenine-Möller y otros, página 835, que resume bastante bien lo que ya ha sugerido en la respuesta a su propia pregunta, considerando lag:

"buffer triple tiene una gran ventaja sobre el doble buffer. Usando , el sistema puede acceder a la memoria intermedia en espera mientras se espera la vertical de retrazo. Con el doble buffer, un swap puede paralizar el canal de gráficos. [... ] El inconveniente del triple almacenamiento en búfer es que la latencia aumenta hasta un marco completo . Este aumento retrasa la reacción a las entradas del usuario, como las pulsaciones de teclas y el mouse o joystick se mueve ".

Cuestiones relacionadas