Tarjetas gráficasTutoriales

¿El V-Sync da input lag? ¿Realmente se nota una peor latencia en los juegos?

Seguro que conoces la configuración de V-Sync o sincronización vertical que ves en los ajustes gráficos de los juegos. También es muy probable que hayas oído hablar que su activación provoca el llamado input lag, pero… ¿qué son realmente ambos conceptos? ¿Cuáles son las ventajas y los inconvenientes del V-Sync, y merece la pena?

En este artículo, comenzaremos repasando lo que es el V-Sync y qué busca solucionar (tearing) y qué es el input lag, para analizar después si realmente provoca este efecto. Así que no dudes en quedarte a leer si te interesa una experiencia de juego fluida y cómoda. ¡Comenzamos!

¿El V-Sync da input lag?

Introducción: definiendo los conceptos de V-Sync e Input Lag

El efecto de tearing es uno de los más detestados en juegos. Básicamente, consiste en que notemos cómo algunos fotogramas están “cortados”, de tal forma que podemos notar cómo a partir de un cierto punto en la pantalla vemos la imagen ligeramente desplazada, sobre todo cuando se trata de objetos en movimiento. Activar el V-Sync lo soluciona, pero se dice que su activación provoca otro efecto, el aumento del input lag.

Entonces, vamos a comenzar definiéndote qué es el V-Sync y cuáles son sus fundamentos de funcionamiento, para luego definir el input lag y poder por fin responder a la pregunta central sobre la que se enfoca este artículo.

Cómo funciona la sincronización vertical o V-Sync para reducir el tearing

Cuando nuestra tarjeta gráfica genera un fotograma, este se envía al llamado framebuffer, una región de su memoria en la que guarda la información de cada píxel del frame, para luego ser leído por el controlador de nuestro monitor, que mostrará el fotograma correspondiente en pantalla.

Como sabéis, todos los monitores tienen una tasa de refresco concreta, esto es, el número de veces que muestran una nueva imagen por segundo. En la mayoría de los casos será de 60Hz, lo que se traduce en un fotograma nuevo cada 16 milisegundos (1/60).

Por otra parte, cuando estemos ejecutando un juego lo haremos a una tasa de FPS determinada, pongamos que estamos variando entre 100 y 120 FPS. Esto significa que habrá un nuevo fotograma en el frame buffer cuando transcurran entre 8 y 10 milisegundos.

Lo más riguroso aquí es hablar del frametime, que permite definir mejor el tiempo que transcurre entre cada frame, aunque nos ha parecido conveniente hacer la simplificación y hablar de los FPS conocidos por todos.

Pues bien, ¿dónde está el problema? Muy sencillo: si resulta que el monitor necesita 16 ms para imprimir el fotograma entero, entonces puede coincidir la actualización del framebuffer en medio de la impresión en pantalla, justo cuando el monitor está accediendo a este espacio de memoria.

El temido efecto del Tearing
El temido efecto del Tearing

Si esto ocurre, entonces lo que veremos en la pantalla en dicho momento será parte de un frame y parte de otro. Eso es exactamente el fenómeno del tearing.

Pues bien, la idea detrás del V-Sync es conseguir que la gráfica solo envíe nuevos fotogramas al framebuffer cuando el monitor ha terminado completamente el anterior ciclo de refresco, y está por ende preparado para imprimir uno nuevo. Esto se consigue combinando dos acciones:

  1. Sincronizar la tasa de FPS con la de refresco del monitor. Vamos, que si tenemos 60Hz, se limite a 60 FPS, o mejor dicho un frametime de 16ms.
  2. Sincronizar el momento de envío de los frames. Con tener los mismos FPS que Hz no es suficiente, pues podríamos estar generando los frames a mitad del proceso de impresión y no justo al comienzo, con lo que no evitaríamos el tearing.

El segundo punto es fundamental para que el V-Sync funcione como debe, ya que si no nos encargamos de esa sincronización entonces podríamos estar cambiando el framebuffer cuando el monitor está a medias. Entonces, no solo no habríamos solucionado el problema sino que sería mucho peor, pues siempre habría la misma desincronización y por ello el mismo tearing.

Qué es el input lag y en qué nos afecta

El input lag es un concepto extremadamente fácil de explicar. Básicamente, define el tiempo que transcurre desde que enviamos una señal al PC (como mover el ratón) y ver los cambios en pantalla. Afecta sobre todo a aquellos jugadores de títulos competitivos, particularmente shooters, donde tener mayor input lag implica que llevaremos más retraso entre nuestras acciones y lo que ocurre en la partida, haciendo más difícil jugar correctamente.

Doble y triple búfer

Tal y como lo explicamos antes, parece que solo hay un framebuffer en la GPU, y normalmente no es así. Nosotros nos referíamos a aquel al que accede el monitor para el dibujado en pantalla, pero lo normal es que haya al menos dos buffers, el frontal y el trasero. Básicamente, lo que ocurre en vez de la explicación simplificada de antes es que en cada instante la GPU modifica tan solo un buffer (el trasero), mientras que el monitor lee el otro (el frontal). Cuando la GPU termina de escribir, hace un intercambio instantáneo de ambos.

No los copia ni nada por el estilo, sino que el espacio de memoria que correspondía al buffer frontal pasa a ser el trasero y viceversa.

Es decir, que en vez de ir actualizando el mismo framebuffer que lee el monitor, se actualiza otro (trasero) mientras el monitor lee el frontal, y una vez se termina de actualizar el trasero pasa a ser el frontal.

Esto se hace básicamente para evitar problemas de flickering o parpadeos, al fin y al cabo no parece una solución muy fiable ir leyendo algo a un ritmo concreto al tiempo que se está actualizando.

Pues bien, el gran problema por el que existe el V-Sync es que este intercambio de framebuffers puede ocurrir en cualquier momento, tal y como os explicamos al principio la información del frame a imprimir puede cambiar justo mientras se está imprimiendo, y de ahí viene el efecto de tearing. Con VSync activado, no hay un intercambio de framebuffers hasta que el monitor haya terminado cada ciclo de refresco, y la generación ocurre en sincronía con esa tasa.

En este sentido, se puede usar un triple búfer para el V-Sync, de tal manera que hay 2 framebuffers traseros, con la motivación de que la gráfica pueda trabajar a un ritmo menos lastrado, por un motivo muy simple: durante los pocos milisegundos en los que el buffer trasero está esperando para ser intercambiado, se pierde tiempo. Añadiendo el triple buffer, permitimos que la gráfica ya vaya generando otro frame en el tercer buffer mientras el segundo espera a su intercambio.

Sí, el V-Sync provoca input lag: ¿por qué?

Ahora vamos a responder a la pregunta sobre la que se planteó este artículo: ¿Provoca el V-Sync un mayor input lag? La respuesta es SÍ. Veamos por qué.

El V-Sync funciona mediante interrupciones, y no mediante sondeo. Esto significa básicamente que la sincronización no consiste en funcionar a una frecuencia concreta y ya, sino que cuando se genera un fotograma se espera a recibir una señal para proceder al dibujado del siguiente fotograma.

Entonces, básicamente la gráfica tendrá que estar “esperando” a que el monitor termine de mostrar cada fotograma antes de empezar a generar un nuevo frame.

A este respecto, la respuesta por parte de la comunidad es unánime: estas diferencias de input lag son más que suficientes para notarse en juegos y para ser perjudicado en shooters, por ejemplo. Tal y como te explicamos antes, entenderás que el V-Sync de triple buffer es bastante mejor en cuanto a esto, pero eso no significa que sea perfecto.

Esto no es algo que solo se pueda razonar y ver desde un punto de vista teórico, sino que también se puede medir, y está más que demostrado, un ejemplo fácil de interpretar son las pruebas de arriba, que no son las más rigurosas al estar realizadas con una cámara a 1200 FPS (que no es demasiado), pero muestran muy claramente que hay grandes diferencias.

Entonces, ¿debo olvidarme de activarlo o hay casos donde podría usarlo?

Está claro que, en vista de lo expuesto, usar la sincronización vertical en juegos que requieran de unos buenos reflejos y rapidez en los movimientos, como podría ser un shooter, es una pésima idea. De hecho, es normal notar diferencias muy palpables e incluso ser bastante más malo jugando con el V-Sync activado. ¡El retardo adicional que añade puede ser crítico!

Pero, por otra banda, tampoco es que parezca una mala idea usar V-Sync en juegos más relajados, como podría ser alguno más basado en la historia que en la acción, o donde la latencia añadida no supondrá un gran problema aunque haya velocidad, como podría ser un simulador de conducción.

El problema es que el input lag no tiene por qué ser el único efecto del V-Sync. También puede darse el caso de que, si la sincronización entre la gráfica y el monitor no es demasiado exitosa, se provoquen caídas de FPS que a su vez causen stuttering, que es un efecto también increíblemente molesto y afecta muy fuertemente a la fluidez. Todo dependerá del título concreto y de la situación, evidentemente.

La respuesta general es que hay que usar alternativas al V-Sync. Aunque puede ser razonable usarlo en un juego donde la rapidez no sea clave y se compruebe que no causa problemas de stuttering.

Alternativas a la sincronización vertical

Claro, si el V-Sync no es la solución razonable para la eliminación del tearing, ¿tenemos que lidiar con este problema, o hay soluciones mejores? Afortunadamente, se dispone de bastantes opciones 😉

La tecnología estrella es la tasa de refresco variable (VRR), que encontramos implementada en AMD Freesync y NVIDIA G-Sync. Esta básicamente nos permite conseguir que el monitor haga variar su tasa de refresco y esta se sincronice con el frametime del juego en ejecución, es decir, que se refresca la imagen cada vez que haya un nuevo fotograma. Así, conseguimos una experiencia libre de tearing sin lastrar el V-Sync.

Artículos principales:

Tenemos más opciones que nos hacen olvidarnos del input lag, como limitar los FPS, pero tal y como os explicamos en nuestro artículo al respecto con esto no sirve, pues no aseguramos la sincronización en tiempo de la que os hablábamos antes.

Palabras finales y conclusión

Muchas personas consideran que el V-Sync provoca input lag, pero… ¿esto es así?

El V-sync o sincronización vertical es una tecnología que permite a la tarjeta gráfica sincronizar el envío de los fotogramas renderizados con el monitor, de tal forma que se consigue evitar el efecto molesto de tearing en juegos.

Este efecto, que produce fotogramas “entrecortados”, ocurre cuando el monitor lee parte de un fotograma y parte de otro. Para imprimir cada frame por pantalla, se lee una región de memoria que contiene toda su información. Si mientras se lee se genera un nuevo fotograma, sobrescribirá al anterior y será entonces cuando aparecerá el tearing. Esto es lo que viene a solucionar V-Sync.

La sincronización se consigue tanto en cantidad de fotogramas enviados (habrá tantos FPS como tasa de refresco en Hz del monitor) como en su momento de envío, ya que la gráfica solo los enviará para su dibujado cuando el monitor haya terminado el ciclo de refresco anterior.

Claro, esto es muy efectivo y maravilloso para eliminar el tearing, pero introduce dos efectos adicionales: por una parte, tenemos la posibilidad de que ocurran micro-caídas de FPS que provoquen stuttering, algo que afecta a la fluidez del juego de una manera horrible.

El otro efecto es el input lag, que aumenta considerablemente con la activación del V-Sync, y es básicamente el retardo que ocurre desde que movemos nuestro ratón o pulsamos una tecla hasta que se reproducen los cambios por la pantalla. Esto es devastador en juegos de movimientos rápidos y ágiles que requieran de unos buenos reflejos, por ejemplo en un shooter.

Teniendo en cuenta que ya hay tecnologías que nos permiten disfrutar de una experiencia sin tearing a la par que no incrementan el input lag, como AMD Freesync o NVIDIA G-Sync, concluimos que el V-Sync a día de hoy es una opción a evitar siempre y cuando nos interese disfrutar de una experiencia con el menor retardo posible, esto es, en cualquier juego en el que la rapidez y los reflejos tengan un factor clave. Por ejemplo, desde luego no nos parece mala idea usarlo en Euro Truck Simulator 2 si no hay problemas de stuttering, pero desde luego tenerlo en CS:GO o Valorant no es una opción.

Breixo Gómez

Apasionado del Hardware, exigente con la calidad de los productos. Intento aprender lo máximo cada día. No dudes en dejarme cualquier duda o sugerencia en los comentarios ;)
Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar Política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en info@profesionalreview.com
Botón volver arriba