Cuando se produjo la presentación de las RTX 40, NVIDIA aprovechó también para dar a conocer una nueva generación de su DLSS, la tercera versión de su algoritmo de aumento de resolución automático vía Deep Learning. Aunque todo hay que decirlo y esta vez han aplicado sus conocimientos en otros campos vía pensamiento lateral para un mejor rendimiento y resultados. De todas formas, ¿qué secretos esconde y cuáles son los primeros juegos compatibles y cómo funcionan las dos versiones anteriores del algoritmo?
En los últimos años los fabricantes de tarjetas gráficas han tenido que elegir entre dos caminos diferentes: o ir añadir a sus dispositivos una potencia bruta cada vez mayor para generar fotogramas pro segundo a base de capacidad de proceso de la GPU, con el consiguiente coste que tiene eso, o ayudando con tecnologías que son capaces de liberar de trabajo al procesador de la gráfica dibujando fotogramas a partir de otros de referencia. De ahí nacen estos DLSS que tiene NVIDIA y que son capaces de duplicar –en algunos casos y bajo ciertas circunstancias– la tasa de frames por segundo de un juego, sin necesidad de tener que instalar una GPU más potente.
A la hora de generar imágenes en movimiento es mucho mejor predecir cómo sería una buena cantidad de píxeles en la escena que no generarlos de la nada, desde cero. Y esto es por el hecho que el coste de crearlos de principio a fin es mucho más alto (en cuanto a potencia necesaria y recursos) que predecirlos. Algoritmos como el Deep Learning Super Sampling se basan en ello, en predecir información a través de otra ya existente. Todo ello basándose en la capacidad de aprender patrones visuales. ¿El resultado? Para nosotros, un aumento en la tasa de frames de los juegos a ciertas resoluciones sin tener que necesitar toda la potencia bruta o cualquier otra adicional.
El DLSS en las RTX depende de los Tensor Cores
Lo primero que tenemos que tener en cuenta es como los diferentes algoritmos, llamados comúnmente DLSS, aprovechan el hardware de la tarjeta gráfica y nada mejor que hacer un análisis del funcionamiento de la GPU mientras está renderizando un fotograma con el DLSS activo y sin este. Las dos capturas de pantalla que tenéis abajo de estas líneas corresponden al uso de la herramienta NVIDIA NSight, la cual mide el uso de cada una de las partes de la GPU a través del tiempo. Para interpretar las gráficas hemos de tener en cuenta que el eje vertical corresponde al nivel de uso de esa parte de la GPU y el eje horizontal el tiempo en el que se renderiza el fotograma.


Como se puede ver, la diferencia entre ambas capturas de pantalla del NSight es que en una de ellas se puede ver el nivel de uso de cada parte de la GPU al utilizar el DLSS y en la otra no. ¿Cuál es la diferencia? Si no fijamos bien veremos que en la correspondiente al uso del DLSS la gráfica correspondiente a los Tensor Cores esta plana excepto al final de la gráfica, que es cuando estas unidades se activan. El DLSS no es otra cosa que un algoritmo de superresolución, que toma una imagen a una resolución de entrada determinada y saca en el proceso una versión de la misma imagen a más resolución. Es por eso que los Tensor Cores al aplicarlo se activan al final, ya que requieren que la GPU renderice la imagen primero.
¿Cómo funciona el DLSS?
En las dos primeras versiones del algoritmo, el DLSS puede tomar hasta 3 milisegundos adicionales del tiempo de creación de un fotograma. En el caso del DLSS 3 lo desconocemos, pero suponemos que es menor por la mayor potencia de las RTX 40. En todo caso el DLSS necesita la información del fotograma recién generado, por lo que si queremos que el juego funciona a una tasa de frames concreta deberemos calcular el tiempo de fotograma, por ejemplo 16. 67 ms si queremos 60 FPS, y a eso restarle el tiempo que tarda la tarjeta gráfica en aplicarlo.
Suponed que tenemos una escena que queremos renderizar a 4K. Para ello tenemos una GeForce RTX indeterminada que a dicha resolución alcanza los 25 fotogramas por segundo, por lo que renderiza cada uno de estos a 40 ms, sabemos que la misma GPU puede alcanzar a 1080p una tasa de fotogramas de 5o, 20 ms. Nuestra hipotética GeForce RTX tarda unos 2.5 ms en escalar de los 1080p a los 4K, por lo que si activamos el DLSS para obtener una imagen 4K a partir de una a 1080p entonces cada fotograma con DLSS tardará 22.5 ms. Con ello hemos obtenido renderizar la escena a 44 fotogramas por segundo, lo cual es mayor que los 25 fotogramas que se obtendrían renderizando a resolución nativa.
¿Qué ocurre si la tarjeta gráfica no tiene suficiente potencia?
Cada modelo de las NVIDIA RTX tiene su velocidad a la hora de aplicar una de las variantes del DLSS dependiendo de cuál sea la resolución origen y cual la de destino. La tabla que véis abajo la hemos sacado de la documentación de la propia NVIDIA, en ella el aumento de resolución en número de píxeles en pantalla es de 4 veces más. Por lo que corresponde al llamado Performance Mode en los modelos que pertenecen a las Series 2 y 3. Como veis, a medida que aumentamos la potencial del modelo, los datos de tiempo invertido se van reduciendo de forma apreciable.
Como se puede ver en la tabla el rendimiento no solo varía según la GPU, sino también si tenemos en cuenta la GPU que estamos utilizando. Lo cual no debería sorprender a nadie después de lo que hemos explicado con anterioridad. El hecho que en el Performance Mode una RTX 3090 acabe consiguiendo escalar de 1080p a 4K en menos de 1 ms es cuanto menos impresionante, no obstante, esto significa que el DLSS funciona mejor cuanto más potente es la tarjeta gráfica.
El DLSS no es una reconstrucción, sino una predicción
Esto es importante tenerlo en cuenta, el motivo por el cual es un algoritmo que requiere entrenamiento y por tanto ensayo y error es por el hecho que, pese a que los fotogramas se generan de forma muy rápida, no lo hace lo suficientemente rápido como para saltarse ciertos errores. Y si bien se puede entrenar el algoritmo para que no saque píxeles erróneos a partir de la predicción, la falta de información es fatídica. Por ejemplo, cuanta menos resolución tenga la imagen de origen menos calidad tendrá la imagen final obtenida.
El otro punto tiene que ver con la geometría de la escena. Todas las GPU se han diseñado para que el tamaño más pequeño que puede tener un objeto sea de 2×2 píxeles como mucho. ¿Las consecuencias sobre el DLSS? Cualquier objeto menor de ese tamaño es descartado y hemos de tener en cuenta que con la distancia los objetos son cada vez más pequeños. Esto significa, por ejemplo, que una imagen a 4K generada de forma nativa y no con el DLSS tendrá detalles adicionales.
DLSS 1.0 vs DLSS 2.0, ¿en qué se diferencian?
Cada versión del DLSS toma como base a la anterior, por lo que el DLSS 3 es una evolución del DLSS 2 y este último de la versión original. El primer DLSS no soportaba temporalidad en el sentido de que no usaba vectores de movimiento para la reconstrucción de las imágenes. Lo que hacía era usar información de un solo fotograma, de ahí a que su calidad de imagen fuese mucho peor. En realidad, el DLSS de NVIDIA supuso un factor diferencial respecto a la competencia a partir de la segunda versión.
¿Qué es Optical Flow y por qué es importante para DLSS 2 y 3?
Para entender cómo funciona el DLSS 3, antes de nada, hemos de saber a lo que NVIDIA se refiere con Optical Flow. Y se trata de algo que se lleva usando desde las RTX 20. Aunque no se trata de un elemento de hardware, sino que son una serie de librerías de software que se definen de la siguiente manera:
El SDK de NVIDIA Optical Flow expone las últimas capacidades de hardware de las arquitecturas Turing, Ampere y Ada dedicada a la computación del movimiento de los píxeles entre imágenes. El hardware usa sofisticados algoritmos para crear vectores de alta calidad, los cuales son variaciones de fotograma a fotograma y permiten seguir el movimiento de los objetos.
A esto se la llama interpolación de fotogramas y la marca de verde lo ha estado usando en varias aplicaciones. Consiste en que en cada objeto de la imagen o a cada píxel, dependiendo del nivel de precisión se le asigna una identificación creando lo que llamamos un ID Buffer. Esto además le permitirá saber dónde se encuentra cada objeto en cada fotograma y poder predecir su movimiento.
Lo que hace el generar los datos en forma de una cadena de matrices o tensores. Un formato de datos optimizado para ser procesado en los Tensor Cores de las GPU de NVIDIA. Donde cada valor corresponde a un píxel de la imagen y cada matriz a un fotograma o a un subcomponente de color del mismo. Este tipo de estructuras de datos son usadas en IA y debido a su naturaleza requieren de unidades especializadas para ejecutarse.
¿Cuáles son sus aplicaciones?
¿La primera utilidad? La más clara es la creación de fotogramas interpolados, los cuales son fotogramas intermedios que se sitúan entre dos ya existentes que ha generado a través de fuerza bruta la GPU y que son capaces de crear una sensación de mayor fluidez en el movimiento de las imágenes que vemos en pantalla al situar entre medias rangos de movimiento mucho más precisos. Imaginad que jugáis habitualmente a 30 fotogramas por segundo. Si pasáis a 60 (en un caso hipotético) gracias a DLSS 3, ¿seríais capaces de percibir la diferencia?
Aunque la más famosa, comercialmente hablando, es la creación de vectores de movimiento que se pueden usar para algoritmos como Temporal AntiAliasing, el DLSS 2 y 3, el FSR 2.0. Dado que para reconstruir la imagen usan la información de fotogramas anteriores para una mayor precisión.
El Optical Flow Accelerator
Los algoritmos de interpolación de fotogramas y la creación de vectores de movimiento se pueden hacer a través de algoritmos que se ejecutan en la propia GPU. Sin embargo, NVIDIA después de años de conocimiento en la conducción automática y en especial en la visión por computador ha podido aplicar dichos conocimientos de cara a los juegos.
Entendemos como visión por computador a la capacidad de identificar y delimitar objetos de una imagen. Es decir, no es sobre la generación de objetos. Pues bien, el Optical Flow Accelerator es una pieza de hardware dentro de las RTX 40 que lo que hace es de forma automática observar los objetos en pantalla, identificarlos y calcular los vectores de movimiento a partir de varios fotogramas anteriores y calcular la trayectoria.
Esto significa que en el DLSS 3 donde es usado se ha eliminado por completo la parte del código relativo a la temporalidad. Se trata además de una treta de NVIDIA para evitar que algoritmos de la competencia, como el FSR 2.0 de AMD, sigan usando para su beneficio las librerías del DLSS 2.0. A cambio tiene una contrapartida y es que los juegos que lo usen solo se podrán ejecutar en las RTX 40 de NVIDIA con arquitectura Ada.
Búfer de visibilidad
Se trata de uno de los elementos clave en las últimas versiones de Unity y Unreal Engine, los dos motores más usados para la creación de videojuegos y es lo que relaciona al DLSS 3 con el Ray Tracing, dos elementos que la propia NVIDIA ha relacionado entre sí. Pues bien, lo que hace el Optical Flow Accelerator es generarlo de forma automática sin participación alguna de ningún elemento externo.
Interpolación de fotogramas en juegos
En una película, debido a que todos sus fotogramas ya existen y se encuentra grabada es fácil realizar una interpolación de fotogramas (las viejas teles CRT trabajaban de esa maenra, interpolando fotogramas para ofrecer una suavidad muy especial, que caracterizaba aquella tecnología). En un videojuego cada uno de ellos es inédito y se necesita una gran potencia de cálculo para realizar todo el proceso de identificación lo suficientemente rápido como para ser útil a tiempo real y no afectar a la jugabilidad.
Sin embargo, ocurre que entre que la GPU genera en la VRAM de la tarjeta gráfica y este se envía a nuestra pantalla habitualmente hay un retraso. ¿Qué acaba ocurriendo? Pues que muchas veces no se ha enviado a pantalla el primer frame y la GPU ha conseguido realizar el segundo y esto ocurre mucho en juegos que funcionan a una alta frecuencia, es decir, han de resolver un frame en pocos milisegundos.
Si la sucesión de imágenes es muy rápida nuestro cerebro no se fija en los detalles, por lo que podemos generar una serie de fotogramas fantasma intermedios. Y esto lo ha aprovechado bien NVIDIA con el DLSS 3, donde gracias a esta capacidad pueden generar nuevos frames. Eso sí, el motor de juego que es la velocidad en el que la CPU genera la lista de pantalla para cada fotograma no va a la velocidad que se generan, ya que muchos de ellos se han generado de forma automática a través de la interpolación.
¿Qué juegos soportan DLSS 3?
Por el momento son más de 60 los títulos, aunque dos de ellos pertenecen no a juegos sino a motores gráficos como Unity y Unreal Engine. Por el momento, la lista de juegos compatibles es la siguiente:
- A Plague Tale: Requiem
- Atomic Heart
- Bright Memory: Infinite
- Call of Duty: Modern Warfare III
- Cyberpunk 2077
- Dead Space (2023)
- Deliver Us Mars
- Diablo IV
- Dying Light 2 Stay Human
- F1 22
- F.I.S.T.: Forged In Shadow Torch
- Flintlock: The Siege of Dawn
- Forza Horizon 5
- Fortnite
- Ghostrunner 2
- Hitman 3 / Hitman: World of Assassination
- Hogwarts Legacy
- Homeworld 3
- Icarus
- Indiana Jones and the Great Circle
- Jurassic World Evolution 2
- Justice
- Like a Dragon: Infinite Wealth
- Like a Dragon Gaiden: The Man Who Erased His Name
- Loopmancer
- Marvel’s Guardians of the Galaxy
- Marvel’s Midnight Suns
- Marvel’s Spider-Man Remastered
- Marvel’s Spider-Man: Miles Morales
- MechWarrior 5: Mercenaries1
- Microsoft Flight Simulator
- Microsoft Flight Simulator 2024
- Minecraft (Bedrock Edition)
- Monster Hunter Wilds
- Mount & Blade II: Bannerlord
- Need for Speed Unbound
- PERISH
- Portal with RTX
- Ratchet & Clank: Rift Apart
- Ready or Not
- Resident Evil 2
- Resident Evil 3
- Resident Evil 4
- Sackboy: A Big Adventure
- Saints Row
- SCUM
- Severed Steel
- Shadow of the Tomb Raider
- Skull and Bones
- Slender: The Arrival
- Smalland: Survive the Wilds
- Star Wars Jedi: Survivor
- Star Wars Outlaws
- STALKER 2: Heart of Chornobyl
- Steelrising
- Still Wakes the Deep
- The Finals
- The Lord of the Rings: Gollum
- The Witcher 3: Wild Hunt – Game of the Year Edition
- THRONE AND LIBERTY
- Unity
- Unreal Engine
- Warhammer 40,000: Darktide
- WRC Generations
Iremos añadiendo títulos a la lista de juegos compatibles con DLSS 3 a medida que se vayan anunciando tanto por parte de sus desarrolladores como de la propia NVIDIA.