miércoles, 19 de octubre de 2016

¿Qué es el vsync y porqué deberías comprarte un monitor con Freesync o G-Sync?

Con la potencia de las tarjetas gráficas actuales, ha llegado el momento de decir adiós a la sincronización vertical para plantearse seriamente en comprarse un monitor con Freesync o G-Sync.

Es posible que hayas oído hablar de la sincronización vertical, o “vsync”, como un factor determinante en el disfrute de un juego; pero la verdad es que es posible que hayas jugado a juegos con vsync activado y no te hayas dado cuenta.

Eso es lo que ocurre con el vsync, su objetivo es que no nos demos cuenta de que está funcionando, y sólo nos acordamos de él cuando no funciona correctamente o cuando está desactivado. Pero antes de llegar a la conclusión de si merece la pena, tenemos que saber porqué queremos activarlo en primer lugar.

Por qué ocurre la pantalla partida en los juegos

vsync-1

El tearing es un fenómeno que seguro que has encontrado alguna vez, a poco que hayas jugado más de un videojuego en tres dimensiones.

Se conoce como tearing a la “pantalla partida”, cuando momentáneamente aparece una fisura en medio de la pantalla, como si estuviese rota; es posible que alguna vez te hayas mareado porque crees que la pantalla está moviéndose, y ese es otro efecto indeseado del tearing.

Para entender porqué ocurre, tenemos que saber que cada frame que vemos en la pantalla ha sido calculado y renderizado de manera continua por la tarjeta gráfica, presentado por la pantalla para dar sensación de movimiento; imaginad que son un ejército de dibujantes, que a base de crear decenas de dibujos cada segundo consiguen crear una animación.

vysnc-4

Por lo tanto, renderizar frames es un trabajo contra el tiempo, porque si un frame tarda demasiado en ser renderizado, parecerá que la pantalla se ha “congelado”; si no se hace nada poco a poco sentiremos que todo va más lento, o que la imagen no está sincronizada con el sonido.

vysnc-5

Por lo tanto, la tarjeta gráfica se pone un límite (en milisegundos) para renderizar y enviar el frame a la pantalla. Si se cumple el límite y no ha terminado el frame, lo manda igualmente a la pantalla y se pone con el siguiente, no se espera a terminar el que está haciendo.

Ese es el efecto de pantalla partida que vemos, la parte superior es el nuevo frame que ha sido enviado, y la parte inferior es el frame viejo (esto no siempre es así, pero en la actualidad todas las gráficas funcionan de esta manera). Esta imagen de un vídeo de Digital Foundry muestra la diferencia de un frame respecto al anterior en un caso de pantalla partida, y como veis, sólo la parte superior se ha actualizado:

vsync-2
vysnc-3

La sincronización vertical, una solución que empeora las cosas

Las últimas tecnologías son capaces de prever si un frame no va a poder ser terminado a tiempo, y mandan el frame nuevo inmediatamente para que el efecto de pantalla partida sólo se de en la parte superior de la imagen, pero sigue siendo un problema.

La sincronización vertical, o vsync, nació para eliminar este problema; como su nombre indica, esta tecnología sincroniza la producción de frames cada segundo con la cantidad de imágenes que el monitor es capaz de mostrar cada segundo. Por ejemplo, si el monitor es de 60 Hz, no tiene mucho sentido que el juego vaya a más de 60 frames por segundo, así que estos valores se sincronizan.

Así que la regla del vsync es que la gráfica no puede enviar el frame que ha renderizado a la pantalla hasta que esta se ha refrescado, para que el nuevo frame y el nuevo refresco se sincronicen.

vysnc-6
El vysnc es una solución imperfecta a este problema, que acarrea más problemas de los que soluciona. Por ejemplo, supone un notable impacto en el rendimiento, hasta tal punto de que si tu ordenador no puede ejecutar un juego a mucho más de 60 frames por segundo, realmente no merece la pena activar el vysnc.

Eso es porque el vsync toma una decisión muy drástica cuando la tarjeta se da cuenta de que no llegará a tiempo para mostrar el frame: en vez de mostrar la nueva imagen incompleta, simplemente sigue mostrando la imagen anterior, que permanece guardada en un buffer. Sí, de esta manera eliminas la pantalla partida, pero a cambio sufrirás pequeños saltos que pueden afectar más a la jugabilidad que la pantalla partida.

En la siguiente imagen vemos un problema común en algunos sistemas SLI (dos o más gráficas de Nvidia juntas) cuando se activaba el vsync; es evidente que hay frames que tardan demasiado en aparecer, y eso se notará al jugar. No podremos fiarnos tanto de los controles, y puede incluso que nos mareemos.

vysnc-7

Por eso muchos aficionados prefieren desactivar vsync aunque ofrezca una mejor calidad de imagen. Llevamos demasiado tiempo dependiendo de esta tecnología, y por eso los dos grandes fabricantes de tarjetas gráficas presentaron su alternativa.

G-Sync
vysnc-10

  • Alternativa de Nvidia, sólo funciona con sus gráficas y con monitores autorizados.
  • Tecnología propietaria, sólo las compañías que llegan a acuerdos económicos con Nvidia pueden usarla.
  • En vez de hacer que la gráfica cree frames al ritmo de la pantalla, esta tecnología hace lo contrario, y obliga a la pantalla a adaptar su frecuencia de refresco para sincronizarse con los frames por segundo de la tarjeta.
  • El monitor necesita un hardware especial, un módulo diseñado por Nvidia que ocupa bastante espacio en el monitor (aunque a cambio sustituye otros elementos del monitor que ya no tienen que incluirse)
  • Los monitores compatibles con G-Sync suelen ser más caros por la inclusión de este hardware y porque los fabricantes tienen que diseñar nuevos monitores que lo incluyan.

Freesync
vysnc-9

  • Alternativa de AMD, sólo funciona con gráficas Radeon (por ahora) y con monitores compatibles.
  • Tecnología gratuita y de libre uso, cualquiera puede crear un dispositivo compatible con Freesync (incluso Nvidia). Intel ya ha declarado su intención de soportarla.
  • Al igual que G-Sync, Freesync varía la tasa de refresco del monitor para que encaje con la tasa de frames por segundo de la tarjeta gráfica.
  • No necesita hardware adicional, funciona usando el estándar DisplayPort 1.2a para enviar al monitor los datos de la tasa de refresco necesaria. Forma parte del estándar VESA.
  • Desde 2016 Freesync también funciona con la conexión HDMI en algunos dispositivos.
  • Los monitores compatibles suelen ser más baratos porque los fabricantes pueden adaptar monitores ya existentes para que soporten la tecnología.
  • Se han dado casos de incompatibilidades, ya sea de parte de los fabricantes o de parte de AMD.
Como veis, son dos tecnologías que hacen básicamente lo mismo, y lo mejor de todo es que consiguen una sincronización perfecta de frames sin afectar al rendimiento, porque la gráfica no hace nada.

Claro, que AMD y Nvidia han tomado caminos muy diferentes para conseguirlo. En la actualidad, la cantidad de monitores compatibles con Freesync es mucho mayor y está en un rango de precios más asequible.

Las únicas grandes pegas que tiene Freesync son dos: AMD aún tiene que trabajar un poco en los drivers y con los fabricantes para conseguir una experiencia sin problemas, y que las tarjetas Nvidia no son compatibles.
vysnc-11
Por lo tanto, si tienes una gráfica Nvidia realmente no tienes muchas opciones: tendrás que pagar bastante por un monitor de gama alta compatible con G-Sync.
vysnc-12

Por otra parte, si tienes una gráfica Radeon deberías plantearte seriamente comprarte un monitor Freesync, porque ofrece una mejora en la calidad de imagen inmediata sin gastarte demasiado.