Mejora la latencia y estabilidad de los FPS en juegos con MPO y tu GPU

Mejora la latencia y estabilidad de los FPS en juegos con MPO y tu GPU

Javier López

Aunque el sector del gaming sigue evolucionando hacia nuevos niveles de realismo y rendimiento en los juegos, lo cierto es que muchas de las mejoras no se terminan implementando, o incluso, terminan haciéndolo tarde. NVIDIA ha tenido que mover ficha en sus drivers debido a una actualización de Microsoft con Windows que afecta al parámetro V-SYNC y a una tecnología denominada como MPO. ¿Qué es y cómo ayuda a mejorar los juegos?

Microsoft ha vuelto a las andadas y en un cambio poco elegante de cara a la galería ha permitido que una de sus características clave en la suavidad y estabilidad de los FPS en juegos tome el control de algo tan controvertido como el modo ventana en los juegos y el V-SYNC, ¿qué tiene que ver MPO en todo esto?

¿Qué es el overlay en un juego?

MPO Funcionamiento

En la gran mayoría de juegos se presentan una serie de marcadores donde se indica la situación del jugador en la partida, como puede ser la puntuación, la vida, la cantidad de magia que nos queda, las balas, a veces aparece un pequeño mapa que al estilo navegador GPS que nos indica el siguiente punto, etc. Todo ello forma parte de lo que llamamos el overlay del juego.

Pues bien, pese a que visualmente nosotros captamos todos esos elementos gráficos en un solo fotograma, realmente se renderizan de manera independiente a lo que es la acción del juego para luego crear una composición. El motivo de dibujarlos por separado es que son elementos en 2D y se renderizaran dentro del entorno 3D entonces provocarían problemas respecto a la posición de los objetos respecto a la cámara.

En la composición final la GPU le da una preferencia al overlay correspondiente a la interfaz del juego, así pues, si este es completamente opaco, en ese píxel no dibujara el resultado del fotograma generado en el juego, sino el de la interfaz. En el caso de que este sea semitransparente lo que hará será una composición de ambos haciendo uso del llamado alpha blending.

MPO en Windows

MPO

Una de las novedades en los últimos años en las diferentes interfaces gráficas es la superposición de diferentes ventanas a través de composiciones múltiples. El ejemplo más notorio es cuando estamos viendo un vídeo en una página web de streaming de contenido y de repente podemos minimizarlo en pequeño para seguir haciendo búsquedas dentro de la propia página web. Por lo que la llamada superposición multiplano o Multiplane Overlays o MPO por sus siglas en inglés, es algo que lleva mucho tiempo entre nosotros, concretamente desde que se lanzó con WDDM 1.3 y DirectX 11.2 con Windows 8.1 y se extendió más tarde por WDDM 2.0 hasta llegar a WDDM 3.0 (Windows Display Driver Model).

El motivo principal de su existencia, en origen, era el de poder combinar la presentación de ciertas aplicaciones de contenido multimedia junto a aplicaciones de apoyo para las mismas. Una idea que no salió muy bien, pero que durante un tiempo se pensaba que era el futuro de la televisión. Dicho de otra manera, se trata de algo que Microsoft heredo de la inicial estrategia fallida con su Xbox One, pero que colateralmente puede ser aprovechado por los juegos.

Aumenta el rendimiento de los juegos

Counter Strike Go GamePlay

Cómo os hemos comentado antes, el uso del MPO permite separar lo que es el HUD y, por tanto, los marcadores del juego, de lo que es el renderizado en 3D de la escena en dos etapas distintas para una composición combinando ambas imágenes en una sola.

Este proceso se realiza en lo que llamamos postprocesamiento de imagen, el cual se realiza a través del pipeline de computación de la GPU. A día de hoy este es utilizado para aplicar una serie de efectos visuales durante el renderizado 3D. Por ejemplo, en los diferentes tipos de AntiAliasing o en el caso del renderizado en diferido el cálculo de la iluminación. Se ha de tener en cuenta que a día de hoy el hardware para 2D ha desaparecido y ha sido reemplazado por el empleo del pipeline de computación de la GPU para ello. Esto le permite a una parte de la tarjeta gráfica empezar con el siguiente fotograma en pantalla, mientras última los detalles del que esta a punto de enviar a pantalla.

Un procesado en segundo plano de elementos de la interfaz del juego tiene la ventaja de que al no estar integrada nos permite optimizarla e incluso mejorarla con nuevas opciones sin tener que modificar el motor gráfico del propio juego. Por otro lado, hemos de tener en cuenta que muchos juegos renderizan a menos resolución que la de salida, ya que realiza un pequeño escalado de imagen.Si se renderizará la interfaz 2D que hay por encima y luego se subiese la resolución entonces la calidad de imagen quedaría comprometida.

Windows ya permite el modo MPO sin V-SYNC

MPO-Windows

Pero visto lo visto, ¿por qué NVIDIA está en mitad de todo el problema? Pues porque ahora sus drivers son compatibles con MPO a partir de la versión 461.09, por lo que en el caso de que jugásemos en pantalla completa tendríamos el control de la misma con MPO, e incluso en ventana completa, por lo que se producirá tearing, cosa que antes no ocurría, ya que mandaba el DWM.

Esto es debido a que con el MPO la sincronización vertical y horizontal de los frames de la composición es distinto. La acción del juego puede funcionar por ejemplo a una cantidad de FPS concreta, pero podemos hacer que la interfaz se actualice a 60 FPS. Esto significa que vamos a tener una composición 60 veces por segundo, aunque sea reciclando el mismo fotograma del juego una y otra vez.

Por lo tanto, cuando la velocidad de fotogramas está por debajo de cierto umbral, será el propio juego el que establezca el modo MPO para mantenerse en valores de FPS más altos y estables. Esto es posible porque MPO liberará carga en objetos, partículas y detalles técnicos que no son visiblemente necesarios, reduciendo la resolución de los mismos y con ello la cantidad de relleno de los píxeles.

Por ello, ahora con los drivers de NVIDIA, si jugamos en modo ventana, se recomienda usar el valor de V-SYNC en la configuración predeterminada para que sea la aplicación 3D la que escoja la configuración correcta.

1 Comentario