La revolución necesaria del DLSS

Para jugar a 1080p me bastaba con la Nvidia Geforce GTX 1060 3GB de Gigabyte que conseguí poco después de terminar el montaje de mi nuevo ordenador de sobremesa; pero no es menos cierto que desde el principio tuve el ojo puesto en la gama RTX para poder subirme al carro de una tecnología que en tiempos me hubiera parecido de ciencia-ficción: el DLSS, iniciales de Deep Learning Super Sampling.

La relación resolución / potencia de cálculo

Muy a grandes rasgos y a nivel muy muy básico, una tarjeta gráfica necesita más potencia cuantos más pixels tiene que dibujar en pantalla. A una resolución de 1080p son 2073600 pixels. A 1440p serían 3686400, a K4 nos iríamos a 8294400 y, por último, a 8K serían 33177600 pixels.

Pensad ahora que esos son los pixels necesarios para dibujar un sólo frame en pantalla, y si estamos jugando algo que requiera un mínimo de acción querremos que la imagen se refresque, al menos, 60 veces cada segundo para no tener sensación de discontinuidad en la animación, que es algo que saca del juego (y de quicio) a cualquiera.

Si tomamos el ejemplo de resolución 4K, en el que decíamos que la pantalla a dicha resolución se compone de 8294400 pixels y lo multiplicamos por 60, tenemos que la tarjeta gráfica tiene que calcular cada segundo la friolera de 497664000 pixels. ¡Eso son casi quinientos millones de pixels en un sólo segundo! ¡¡¡QUINIENTOS MILLONES!!!

Obviamente, para poder mover semejante cantidad de datos la potencia bruta y la velocidad de proceso de la tarjeta gráfica han de ser tremendas, porque los pixels no son sólo cuadrados de colores sin más; sino que hasta decidir su aspecto previamente llevan una rutina de posicionado, trazado de vértices, texturizado, sombreado… Y no digamos ya si emplean técnicas de iluminación mediante raytracing ¿Empezáis a entender por qué las tarjetas de gama alta cuestan lo que cuestan, abultan lo que abultan y se calientan como se calientan?

De cualquier modo, cuando se pasó de FullHD (1080p) a la resolución de 1440p los fabricantes se dieron cuenta de que la potencia necesaria para dar el salto a cada siguiente resolución se iba incrementando a un ritmo exponencial que el desarrollo de las tecnologías gráficas clásicas no iba a ser capaz de seguir. Se imponía por tanto buscar una solución que no fuera simplemente meter potencia bruta sin más, ya que con el 4K empezando a proliferar y el 8K en el horizonte no es posible disponer de tal potencia de cálculo en una tarjeta que de momento ha de entrar en la caja de un PC.

Buscando alternativas a la potencia pura y dura

Y así es cómo en Nvidia empezaron a dar vueltas a la idea de crear unos algoritmos de escalado dinámico que permitieran renderizar internamente a una resolución inferior para en un último paso resamplear a resoluciones más altas sin apenas pérdida de calidad. Y es que ahí está la clave de todo: podéis coger el Paint, abrir una imagen de 80 x 120 pixels y subirle la resolución todo lo que queráis, pero los píxeles tendrán el tamaño de un melocotón y el resultado será, como mínimo, decepcionante.

Lo alucinante del DLSS es que realmente la pérdida de calidad es muy pequeña para lo mucho que baja la resolución internamente el algoritmo. Por ejemplo, si vamos a jugar en 4K (2160p) y elegimos el modo llamado «Calidad» internamente renderizará a 1440p. Si elegimos el modo «Equilibrado» lo hará en 1253p, mientras que el modo «Rendimiento» lo hará a 1080p y el «Rendimiento Ultra» a 720p. Y sí que es verdad que en este último caso se nota pérdida de calidad sobre todo en los detalles más finos como el pelo de Lara Croft en Shadow of Tomb Raider o las estructuras metálicas finas lejanas en Cyberpunk 2077, pero si elegimos los modos «Calidad» o «Equilibrado» realmente apenas notaremos diferencia con la resolución original y la tasa de frames por segundo se incrementará considerablemente.

Hubo una primera versión que funcionaba en juegos muy específicos y era algo limitada, pero poco a poco la tecnología ha ido evolucionando y a día de hoy estamos ya en la versión 2.0 del DLSS que ofrece mejores prestaciones y una implentación en los títulos más sencilla para los desarrolladores. Hasta tal punto es así que algunos títulos que ya empleaban la primera versión del algoritmo se han actualizado para hacer uso de la versión actual.

Los detalles de cómo funciona el DLSS son bastante complejos, ya que se basa en una red neuronal que utilizando imágenes de muy alta y baja resolución del juego que Nvidia carga en sus servidores aprende cómo rellenar los huecos y desajustes que ocurren cuando se resamplea «a las bravas» una imagen y esta información la acaban volcando en los drivers gráficos que actualizan un par de veces al mes más o menos. Obviamente no os voy a dar el tostón aquí con tantos detalles tećnicos, pero si os interesa el tema os recomiendo echar un vistazo a algunos artículos (casi siempre en inglés) donde tocan en tema de forma bastante profunda.

Está claro que este post-procesado requiere una potencia de cálculo importante en la tarjeta gráfica, pero a la vista de los resultados, las unidades que computan estos algoritmos (los llamados Tensor Cores en las dos últimas familias de tarjetas gráficas de Nvidia RTX20 y RTX30) lo hacen bastante más rápido que si desactivamos el DLSS; lo cual me parece sencillamente alucinante. Que sea más fácil para la tarjeta «inventarse» parte de los pixels de la imagen que calcularlos y que además el resultado final sea tan bueno es algo que la primera vez que vi me sorprendió muchísimo.

DLSS en pruebas sintéticas: 3DMark

Para mostraros esto de una forma gráfica (nunca mejor dicho) he pasado el test específico de DLSS que incorpora la última versión de 3D Mark, el cual dicho sea de paso, es una pasada a nivel visual. Y es que, de hecho, 3DMark siempre ha sido la referencia para los gráficos más punteros, acordándome ahora mismo de la mítica demo de la versión del año 2000 que ejecutaba en mi AMD K6-2 de la época al que le puse una Voodoo Banshee con 16 MB de VRAM.

Volviendo al test de DLSS, en primer lugar aquí tenéis el resultado de pasar el test a una resolución de 1080p con mi Nvidia Geforce RTX 2060. La primera parte es sin DLSS y la segunda aplicando el algoritmo en modo «Calidad», haciendo que apenas haya diferencias gráficas entre uno y otro test.

Como podéis ver, sin aplicar DLSS obtenemos unos 32 FPS, y con el modo «Calidad» la media es de casi 58 FPS que es  un 80% de ganancia de rendimiento (casi el doble).

En caso de aplicar el modo «Rendimiento» en la misma resolución de antes perderemos algo de calidad gráfica en algunos detalles finos pero ganaremos unos cuantos FPS.

En esta ocasión hemos pasado de los 32 FPS al no aplicar DLSS a una tasa de prácticamente 76 FPS, lo que representa una ganancia de rendimiento del 135%.

DLSS en la práctica: Shadow of Tomb Raider

Vamos a ver ahora esto mismo pero aplicado a un juego comercial como es el Shadow of Tomb Raider dado que nos permite usar todos los modos de DLSS disponibles y así como, logicamente, prescindir de él. Se ha ejecutado en el mismo equipo que la prueba del 3DMark.

En las siguientes imágenes podéis ver, de arriba a abajo, cómo influye en la tasa de cuadros por segundo no emplear DSLL o ir usando respectivamente los modos Calidad, Equilibrado, Rendimiento y Rendimiento ultra, manteniendo en todos los casos la calidad gráfica del juego en el máximo y la resolución a 1080p.

¿Veis a lo que me refiero? Emplear DLSS hace que tengamos más FPS a costa de una apenas perceptible pérdida de calidad de imagen, de modo que es un recurso valioso que nos permitirá estirar un poco más la vida útil de nuestra tarjeta gráfica antes de plantearnos dar el salto a un modelo superior porque ya no da más de si.

Ahora bien, espero que con esto los desarrolladores no empiecen a optimizar los juegos malamente pensando que si va lento con que los usuarios activen el DLSS ya está todo arreglado, porque entonces estamos en las mismas al compensar una ventaja con una desventaja. El DLSS es un inventazo, pero yo lo entiendo como un modo de que gente que no tiene una tarjeta de gama alta pueda jugar a resoluciones y/o niveles de detalle que «de serie» no podrían alcanzar.

Que este tipo de tecnologías van a ser de un uso cada vez más general lo demuestra el hecho de que recientemente AMD ha sacado su algoritmo FidelityFX Super Resolution y que Intel, que ahora se va a subir también al carro de las tarjetas gráficas con sus modelos Arc, va a emplear una tecnología similar llamada XeSS. Está claro que esta era una revolución necesaria.