SoftwareTutoriales

Comparativa de API: DirectX 11 vs DirectX 12, ¿hay diferencia de rendimiento?

La comparativa de DirectX 11 vs DirectX 12 tiene como fin ver las diferencias de rendimiento, así como las novedades de una API frente a otra. Además, matizaremos la API DirectX 12 Ultimate y el impacto del Ray Tracing en el mundo gaming.

Uno de los grandes cambios de DirectX 12 es el Ray Tracing, así como una mejora de rendimiento y de latencias, lo que supone un uso más optimizado de la CPU. A día de hoy, seguimos viendo muchos PCs jugando a videojuegos usando la API DirectX 11, por lo que hemos querido hacer un repaso a ambas para ver el impacto que tiene el uso de cada una en relación con la calidad de imagen y los FPS del juego.

¿Qué es DirectX?

microsoft directx

En primer lugar, DirectX es una API que nos permite ejecutar videojuegos en nuestro PC, la cual es de propiedad de Microsoft, ¿eso qué tiene de importante? Pues que solo está soportado en Windows, mientras que OpenGL o Vulkan sí pueden funcionar en Linux u OS X.

Pero, ¿realmente sabes qué es una API? API hace alusión a Application Programming Interfaces, por lo que podemos decir que es un conjunto de funciones o comandos que sirven de herramienta para los desarrolladores a la hora de crear un programa o videojuego.

En el caso de DirectX, ¿qué hace una API gráfica? Su función es mediar entre el motor gráfico del juego y los drivers de la GPU, los cuales interactúan con el kernel del sistema operativo. Por este motivo, los juegos de PS4 no funcionan en Xbox o en PC: una API de gráficos es solo legible por la API que se ha usado para diseñar el programa o videojuego.

Más adelante, hablaremos de DirectX 12 Ultimate, que es la primera API gráfica en la que esa regla no se cumple porque está presente en Xbox Series y en Windows, aunque AMD tiene algo que ver ahí (RDNA 2).

DirectX 11 vs DirectX 12: diferencias principales

directx 11 vs directx 12

A priori, podemos decir que DirectX 12 ofrece 3 mejoras frente a DirectX 11:

  • Mejor escalado en CPUs con más núcleos.
  • Optimización del uso del hardware.
  • Los desarrolladores tienen el control del uso de hardware cuando diseñan el juego.

Empezando por la primera ventaja que ofrecen DirectX 12 y Vulkan, la CPU se utiliza mejor: se aprovechan más de 4 núcleos. Anteriormente, se decía que era inútil tener 8 núcleos porque no se aprovechaban en gaming, aunque eso es pasado, Ahora, toda la carga gráfica se reparte entre todos los núcleos que tenga la CPU, así que ahora SÍ que importa tener muchos núcleos.

No toméis esto al pie de la letra: más núcleos ≠ más rendimiento, solo hace falta ver el rendimiento gaming de Ryzen 9 vs Ryzen 7. Sin embargo, el salto de rendimiento de una CPU de 4 núcleos vs una de 6 u 8 núcleos es patente.

La segunda mejora es la utilización de todo el hardware de forma más óptima, dejando atrás la gran diferencia entre drivers NVIDIA y AMD. Con DirectX 12 se utiliza el hardware mejor, permitiendo que se ejecuten varias estapas de canalización al mismo tiempo.

Por último, el hecho de que los diseñadores y desarrolladores de juegos tengan más control en la forma de cómo el juego usa el hardware, supone una diferencia abismal. Ahora, los desarrolladores asignan recursos a los motores gráficos con ayuda de los drivers de las tarjetas gráficas, así como depuran más el renderizado.

No obstante, hay un problema: cada arquitectura gráfica funciona de manera distinta, ¿qué significa esto? Que es imposible optimizar de manera igualitaria ese uso de hardware en tarjetas gráficas AMD y NVIDIA porque funcionan diferente y están diseñadas de distinta forma. De esta manera, siempre veremos que las RX 6000 son más potentes que las RTX 3000 en un juego específico, y viceversa.

DirectX 12: las 3 claves para mejorar el rendimiento

Esta batalla entre DirectX 11 vs DirectX 12 tiene 3 claves decisorias a la hora de dar un ganador en términos de rendimiento. Estas 3 claves las pone en la mesa la API DirectX 12.

Mesh Shaders y Task Shaders

Nvidia directx 12 mesh shaders

Para empezar, hay que hablar de los Pipeline State Objects (Objetos de estado de canalización) relacionándolo con DirectX 11 y DirectX 12. En la anterior API encontrábamos una gama de estados bastante amplia. El problema estaba en que, a veces, cada estado era independiente, lo que creaba un efecto «cola» a la hora de progresar: hasta que no se finalice el estado anterior, el siguiente no se puede ejecutarse.

En este sentido, os sonarán los ROPs y TMUs, que son piezas de hardware que sirven finalizar esos estados. Es evidente que este proceso sobrecarga todo, desaprovechando todo el hardware que tenemos. Pues, DirectX 12 elimina esa interdependencia entre estados reemplazando eso estados con nuevos PSO (Pipeline State Objects).

directx 11 vs directx 12 PSO

 

Los nuevos PSO pueden cambiar dinámicamente de un lado a otro transfiriendo datos, ¿conocéis los Mesh Shaders y Task Shaders? NVIDIA habló de ellos cuando presentó su gama de GPUs Turing. La razón de ello descansa en que son sombreadores que flexibilizan todo el proceso:

  • Los Mesh Shaders hacen lo mismo que un sombreador de dominio o geometría usando un sistema de subprocesos múltiples.
  • Los Task Shaders actúan de forma similar, aunque la entrada y salida de este sombreador está definida por el usuario.

directx 12 renderizado

¿Cómo se aprecia en el rendimiento? Principalmente, cuando hay muchos objetos para renderizar en una escena. Antes, cada objeto requería una llamada de extracción desde la CPU; ahora, con el Task Shader se envían muchos objetos con una única llamada. Después, este sombreador procesa la lista y distribuye el trabajo al Mesh Shader, terminando con la conversión de 3D a 2D a través del rasterizador.

Este sistema permite eliminar la ingente cantidad de solicitudes a la CPU e, incluso, aumenta el detalle de la escena.

Tecnologías para mejorar el realismo del videojuego

DirectX 12 vino con muchas novedades bajo el brazo, no solo con la optimización del hardware, sino con la mejora gráfica de las escenas de los videojuegos. Aún queda camino por recorrer, pero se han mejorado muchos detalles en los que antes no se centraban.

DirectX Ray Tracing

DirectX 12 Ray Tracing

Hay que hablar de DirectX Ray Tracing (DXR), que es el soporte API para el Ray Tracing que NVIDIA sacó (junto con Microsoft) como la novedad de Turing, apodando esta tecnología como RTX. Pues bien, es una técnica de renderizado basada en el trazado de muchos rayos desde una fuente de luz (el sol, las bombillas, el fuego, etc.).

Antes, esta iluminación no era dinámica, lo que afectaba a las sombras y a los rebotes de cada rayo sobre los objetos. Gracias al Ray Tracing, se calculan y analizan los rebotes de cada rayo en los objetos, incluso moviéndose éstos. Para ello, se hacen millones de cálculos muy complejos y el resultado se traduce en un realismo brutal, acercándonos más a la realidad detrás de una pantalla.

Sombreado de frecuencia variable

VRS

Se trata de una tecnología que permite a la GPU centrarse en ciertas zonas de la pantallas que son más visibles y afectadas por los FPS. En cualquier juego de shooters, diríamos que ese espacio sería el objetivo/cruceta/punto de mira.

¿Cuál es el efecto que produce en la pantalla? Actúa como el efecto bokeh de las cámaras reflex (salvando las distancias), lo que ayuda a centrarnos mejor en el objetivo o en la zona que nos interesa. Sin embargo, esta configuración es una facultad para los desarrolladores, no para los usuarios: son los creadores quienes deciden dónde reducir el sombreado.

Variable Rate Supersampling

Variable Rate Supersampling

Principalmente, encontramos 2 tipos de VRS: Motion Adaptive Shading (MAS) y Content Adaptive Shading (CAS). El CAS lleva a cabo un sombreado individual de cada mosaico 16 x 16, lo que ayuda a la GPU a aumentar la tasa de sombreado en las zonas que se destacan, reduciéndolas del resto.

Por otro lado, está el MAS, que incrementa la tasa de sombreado de los objetos dinámicos y, al mismo tiempo, reduce los objetos estáticos. Aplicados en un juego, se trata de una tecnología que permite dar prioridad a los detalles más importantes de una escena, mientras que los detalles menos importantes no son la prioridad de la GPU.

Buscando ejemplos, podemos decir que el agua, el cielo o la vegetación importa mucho menos que los coches en un juego de carreras, ¿no? De esta manera, los coches se verán muy detallados, mientras que esos detalles no.

Soporte de varias tarjetas gráficas

Obviamente, el SLI o el AMD CrossFire existían antes de DirectX 11, pero la novedad está en que vemos 2 tipos de soportes:

  • Implícito. Deja todo el trabajo a AMD o NVIDIA.
  • Explícito. El motor gráfico del videojuego toma el control de la gestión de las 2 GPUs para combinarlas mejor.

Al final, las 2 tarjetas gráficas usan su VRAM para el renderizado de imágenes, pero esta comparativa entre DirectX 12 vs DirectX 11 nos permite darnos cuenta de que, en DirectX 12, se pueden apilar esas imágenes para duplicar la VRAM.

DirectX 12 Ultimate: API para Windows y Xbox

Nvidia directx 12 ultimate

En principio, se trata de una API que actualiza DirectX 12 para mejorarlo, pero la novedad principal está en que las Xbox Series son compatibles con esta API. En este sentido, es un puntazo para los desarrolladores de juegos porque pueden optimizar mejor sus videojuegos y trabajar mucho menos.

Al final, esto da una portabilidad tremenda, así como una unificación total de la plataforma gaming de Xbox y PC. Ante esta posibilidad, se beneficia tanto Windows, como Xbox porque todos salen ganando (excepto Sony). Antes, hemos dejado caer que AMD tiene algo que ver en esta unión, pero, ¿en qué?

Básicamente, AMD facilita las cosas porque el hardware de las Xbox Series X y S no dista mucho de lo que vemos en un PC: una CPU, una GPU, memoria RAM, etc. En el caso de las consolas, tenemos un SoC compuesto por una CPU Ryzen Zen 2 y una GPU RDNA 2, algo que podemos hacer funcionar en escritorio con un procesador Ryzen 3000 y una RX 6000.

Así que, terminamos el tutorial diciendo que este enfrentamiento DirectX 11 vs DirectX 12 se salda con una clara victoria del segundo sobre el primero porque:

  • Optimiza mejor el hardware.
  • Permite aprovechar los núcleos de las CPU.
  • Los desarrolladores tienen más control sobre el hardware de la consola o PC.

Te recomendamos las mejores tarjetas gráficas del mercado

Esperamos que os haya sido interesante esta información. Si tenéis alguna duda, comentad abajo y os respondemos en breve. ¿Habéis notado la diferencia con DirectX 12?

Ángel Aller

Graduado en Derecho y exabogado con Máster de Comercio internacional. Amante de la tecnología y geek inconformista. Leal a Alt+F4 como estilo de vida.
Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar Política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en info@profesionalreview.com
Botón volver arriba