Título Alternativo: Como hacer para no ver las rayas a la mitad de la pantalla en los juegos…

Cuando jugamos, la placa de vídeo envía al monitor tantos cuadros por segundo (CPS) es capaz de procesar, lo ideal es que siempre el número de CPS sea mayor a la cantidad de veces que el monitor refresca la pantalla (hz). Bien, supongamos que estamos disfrutando un juego en primera persona, la placa está enviando 130 CPS, pero el monitor sólo puede mostrar 75 CPS (hz) entonces… ¿donde quedan los demás CPS?

La respuesta es: en el framebuffer de la placa de video. Tiene sentido ahora, frame+buffer, ahora entiendo qué carajos hace eso.

El problema de que la placa funcione más rápido que el monitor es que a veces se solapan dos cuadros de imagen en la misma pantalla en el mismo momento (observad a la altura de los espejos). Eso queda horrible y suele verse en algunas configuraciones.

Screen Tearing

El tema técnico básico es: la placa no termina de mostrar un cuadro que ya está mostrando el otro. Esto se llama Screen tearing y suele verse en juegos «rápidos» como cualquier first person shooter. La solucion a esto es muy simple: hay que habilitar Vsync.

Vsync sincroniza la cantidad de cuadros por segundo de la placa con los hz del monitor. Para ello hay que tener en cuenta además que para que la sincronización funcione correctamente la placa de video deberá procesar iguales o mayores cuadros por segundo (CPS, o FPS) que el monitor puede mostrar. Por ejemplo si tu monitor/TV es de 60Hz la VGA deberá erogar al menos 60FPS, en caso de generar menos, lo que hace es mantener el cuadro actual hasta «meter» otro cuadro entere. Esto baja el framerate, si, pero a su vez, no pone 2 cuadros juntos y mal encajados en la pantalla.

G-Sync y Freesync, al rescate

Desde hace unos años, la tecnología detrás de los GPU ha evolucionado lo suficiente para implementar una solución con una complejidad tal que permite que el GPU y el monitor se comuniquen y se sincronicen, evitando como mayor y primer medida el molesto efecto Tearing.

Desarrolladas por Nvidia y AMD respectivamente, ambas tecnologías ofrecen lo mismo con implementaciones diferentes. A nivel tecnológico la vuelta de rosca la hizo AMD al implementar su tecnología en el mismo conector DisplayPort sin necesidad de un hardware adicional como en el caso de Gsync, la solución de Nvidia. Eso ha logrado que en estos últimos años la mayor parte de los monitores «Gamer» con capacidad de mostrar 144Hz (Hertz = Ciclos por segundo = Cuadros por segundo).

Además de lo evidente, estas tecnologías tienen más cosas buenas, cómo que mejora la duración de la batería – obviamente en Notebooks – al reducir la frecuencia de actualización del panel cuando la pantalla está estática (es decir, el cuadro anterior es el mismo que el actual).

Según todo parece, la ganadora de estas tecnologías es Freesync. De todas maneras, todavía es temprano para un ganador.

13 COMENTARIOS

  1. rasa

    Buena data pero una preguntita,(pedonpero no soy muy geek :P)

    A donde figura la opción Vsync?En el mismo juego o en algun panel de control de la placa?Por si las dudas mi placa es una GeForce 8600 GT.

    Gracias Guille!!

  2. MAsterOFpuppeTS

    A mi me pasaba con una placa Ati hace tiempo, en verdad pense que estaba mala.

    Yo le activé el vsinc en el catalyst y le subí un poco la sensibilidad del ratón. Tambien hay juegos que tienen esta opcion como call of duty 4 y el devilman cry 4.

    Gracias guillermo por quitarme una preocupación de encima. Este problema se lo explicaba a muchas personas, y en verdad nadie me daba una solución, pensaban que estaba loco XD.

  3. nandi

    ¿como se pone vsync en una VIA/3SG Unichrome pro IGP?

    • novalettres

      con la opcion «poneleotraplacamejor», esta en la configuracion «ajustes de bolsillo».

  4. tornadeitor

    ¿Podrias decir que pasa si ese efecto se sigue produciendo aun estando en windows? por ejemplo en paint se dibuja un fondo negro y un cuadrado blanco el cual se mueve de izquierda a derecha y se nota como el cuadrado no se dibuja verticalmente a la vez.

  5. -Pablo-

    Lo único que se me ocurre es que puedas aumentar la tasa de refresco del monitor. Por ahí lo tenés configurado en 60Hz y a la resolución que lo estás usando soporta más de eso (al menos unos 75Hz). Con eso por ahí se soluciona algo (o dejás de apreciarlo).

    No sé decirte qué tenés que tocar en Windows porque ahora no estoy en ese SO como para fijarme, pero en als opciones del monitor se puede (sino, el Google te explica ).

  6. Tabris

    Uh van aver todas las boludeces que dijimos.

    Me intriga que escribiste «observad».

  7. Juan

    Tambien viene la opcion del Vsync directamente en algunos juegos, como el Portal. Buen dato para tener siempre presente, yo hasta hace poco tenia muchas dudas sobre esto y me hubiese ayudado mucho este articulo!

  8. maxavatar

    vamos por parte dijo jack, algunas de las cosas de la nota estan bien.. otras masomenos.

    La tecnologia la inventa nvidia despues de haber inventado el adaptive Vsync. Este es una evolucion del vsync normal. Como funciona el Vsync?, el vsync sincroniza de prepo el refresh rate del monitor a la VGA. Cuando esto ocurre se elimina el tearing porq todos los frames por arriba del refresh rate del monitor son capeados. Que pasa… cuando los frames bajan del refresh rate la vga mantiene el ultimo frame disponible hasta q otro entre, esto genera otro fenomeno que es el stuttering o relantizacion (tartamudeo), al mismo tiempo esta relantizacion genera input lag porq el frame esta retenido o en suspension, por ende no se puede ejecutar otra instruccion de refresh. (movimiento incluido).

    Ok, entonces tenemos q el vsync elimina el tearing pero mete stuttering, nvidia larga el adaptive v-sync que lo q hace es habilitar el vsync cuando detecta mas frames que refresh rate y lo deja ahi, y luego… lo desabilita cuando detecta menos frames que refresh rate para que no se produzca stuttering. En la practica… prende y apaga el vsync segun se tengan mas o menos frames. (no olvidar que al renderizar algo, los frames son generalmente variables por infinidad de cosas como texturas, objetos, modo de suavizado, etc etc etc que la vga esta procesando al mismo tiempo)

    Bueno, esto q en teoria funciona re bien, en la practica no tanto porq ese prender y apagar de vsync termina metiendo artifacts o un asqueroso input lag.

    Nvidia no contenta con los resultados sigue laburando y inventa un modulo de hardware q hace de enlace entre un monitor de tasa de refresco variable. Hasta ese momento todos los monitores trabajan a una tasa fija seteada. Es decir, si el monitor soporta un modo de pongamos zzzz x yyyy pixeles a 75hz, el refresco es ese y punto. Con los nuevos paneles, la tasa de refresco es variable dentro de un rango, pongamos de 10 a 80hz.
    Ok, en el vsync el driver capea los frames de la VGA a la tasa de refresco porq esta era unica y fija, ahora con los nuevos paneles variables eso no se puede hacer. Entonces Nvidia con ese modulo de hardware lo que hace es «bufferear» unos frames en una fpga custom en el monitor y le avisa que la vga viene en 70frames y el monitor se setea en 70hz y refresca. Basicamente se mete entre lo que sale de la vga y lo que entra en el monitor. Ahora bien, que pasa si la vga tira mas de 80frames??, el monitor no va a poder responder obviamente porque su rango de trabajo es de 10 a 80hz. Entonces, el modulito, le avisa a la vga q active el vsync y capea a 80 frames. Todo muy lindo, funciona ok y todos re contentos. Nvidia cobra por el invento, y ademas cada monitor viene con ese modulito de hardware propietario lo que se traduce a un costo mayor de fabricacion y por ende mas caro el monitor.

    El mismo año, al poco tiempo…. vesa dice que agrega la tecnologia de adaptive sync al display port standar version 1.2a q lo que hace es lo mismo pero sin buffering. Es decir, en el protocolo del display port viaja informacion de cuantos frames vienen por el canal. El firmware del monitor lee esto y se setea a ese refresh rate siempre y cuando pueda (tiene una ventana de tiempo y una especificacion de refresh rates minimos y maximos) para tal fin el driver de la vga sabe de antemano cuales son los maximos y minimos que el monitor puede mostrar y se setea para que cuando se superen estos umbrales aplicar vsync o nada. Esto es una norma de VESA en el display port, por ende es factible de ser adoptada por cualquier fabricante. AMD la adopta y le pone como feature «freesync».

    Nvidia dice que al ser a nivel soft y no tener la lógica ni el buffering de su FPGA (modulito loco) esta solucion no puede seguir el ritmo de los frames correctamente. En la practica se ven prácticamente iguales y solo se ve penalizado el freesync cuando las memorias de la VGA son «lentas».

    Q conviene? si tenes una vga potente de nvidia y no tenes plata para un gsync. Con habilitar vsync o adaptive vsync te alcanza, se va a ver mucho mejor q nada. (en algunos juegos el adaptive vsync anda bien, en otros mete bardo)

    Si tenes un monitor freesync y tenes nvidia, haces lo mismo q el caso anterior.

    Si tenes una VGA AMD y justo te toca cambiar de monitor, compra uno con freesync. No salen mas caros, de hecho casi todos los monitores nuevos son freesync desde el vamos.

    Si no tenes nada, no te preocupes.. ya vendrán tiempos mejores.

    mis 2ctvs

    (sacado de muchos white papers de nvidia, amd y vesa. y de reddit)

Dejá una respuesta

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí