Articulo de referencia

Cadena de intercambio

En gráficos por computadora , una cadena de intercambio (también llamada swapchain ) es una serie de búferes de fotogramas virtuales que la tarjeta gráfica y la API gráfica util...

En gráficos por computadora , una cadena de intercambio (también llamada swapchain ) es una serie de búferes de fotogramas virtuales que la tarjeta gráfica y la API gráfica utilizan para estabilizar la velocidad de fotogramas , reducir el tartamudeo y para otros fines. Debido a estas ventajas, muchas API gráficas requieren el uso de una cadena de intercambio. La cadena de intercambio generalmente reside en la memoria gráfica , pero también puede residir en la memoria del sistema. Una cadena de intercambio con dos búferes es un tipo de búfer doble .

Función

Cadena de intercambio
Representación gráfica de una cadena de intercambio con triple búfer.

En cada cadena de intercambio hay al menos dos búferes. El primer búfer de fotogramas, el búfer de pantalla, es el que se renderiza en la salida de la tarjeta de vídeo . Los búferes restantes se conocen como búferes de respaldo. Cada vez que se muestra un nuevo fotograma , el primer búfer de respaldo de la cadena de intercambio reemplaza al búfer de pantalla; esto se denomina presentación o intercambio . Se pueden realizar diversas acciones sobre el búfer de pantalla anterior y otros búferes de respaldo (si existen). El búfer de pantalla puede simplemente sobrescribirse o devolverse al final de la cadena de intercambio para su posterior procesamiento. La acción que se realiza la decide la aplicación cliente y depende de la API.

Direct3D

Microsoft Direct3D implementa una clase SwapChain. Cada dispositivo host tiene asignada al menos una cadena de intercambio, y la aplicación cliente puede crear otras. [ 1 ] La API proporciona tres métodos de intercambio: copiar, descartar y voltear. Cuando SwapChain está configurado en voltear, el búfer de pantalla se copia en el último búfer de fondo, y luego todos los búferes de fondo existentes se copian hacia adelante en la cadena. Cuando se configura copiar, cada búfer de fondo se copia hacia adelante, pero el búfer de pantalla no se ajusta al último búfer, dejándolo sin cambios. Voltear no funciona cuando solo hay un búfer de fondo, ya que el búfer de pantalla se copia sobre el único búfer de fondo antes de que pueda presentarse. En el modo descartar, el controlador selecciona el mejor método. [ 2 ]

Comparación con el triple búfer

Fuera del contexto de Direct3D, el triple búfer se refiere a la técnica que permite a una aplicación dibujar en el búfer de respaldo que se actualizó menos recientemente. Esto permite que la aplicación continúe siempre con la renderización, independientemente de la velocidad a la que se dibujan los fotogramas o se envían a la pantalla. El triple búfer puede provocar que un fotograma se descarte sin mostrarse si dos o más fotogramas más recientes se renderizan completamente en el tiempo que tarda un fotograma en enviarse a la pantalla. Por el contrario, las cadenas de intercambio de Direct3D son una cola estricta de primero en entrar, primero en salir , por lo que cada fotograma que dibuja la aplicación se mostrará incluso si hay fotogramas más recientes disponibles. Direct3D no implementa una estrategia de intercambio de búfer más reciente, y la documentación de Microsoft denomina a una cadena de intercambio de Direct3D de tres búferes "triple búfer". El triple búfer, como se describió anteriormente, es superior para fines interactivos como los videojuegos, pero las cadenas de intercambio de Direct3D de más de tres búferes pueden ser mejores para tareas como la presentación de fotogramas de un vídeo, donde el tiempo necesario para decodificar cada fotograma puede ser muy variable. [ 3 ]

Referencias

  1. "Clase SwapChain" . Microsoft . Consultado el 30 de octubre de 2009 .
  2. "Cadenas de intercambio" . neXe . Consultado el 16 de mayo de 2015 .
  3. "Triple Buffering: Por qué nos encanta" . AnandTech. Archivado del original el 7 de abril de 2010. Consultado el 27 de mayo de 2014 .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Swap_chain&oldid=1325144630 "