Logo Computerhoy.com

DirectX 11 vs. DirectX 12: ¿cuál es mejor y en qué se diferencian?

DirectX 12

Si eres jugador de videojuegos seguro que el término DirectX te suena de algo. Cada vez que arrancas tu juego preferido las opciones del título te preguntan si prefieres usar DirectX 11 o DirectX 12. Pero, ¿sabes qué significa esto? Vamos a explicarlo.

Como bien recordarás, DirectX 12 se lanzó junto con Windows 10 en 2015. Con su lanzamiento, DirectX 12 de Microsoft prometía ser una revolución: reducía la sobrecarga de la CPU y aumentaba el rendimiento de la GPU. El tiempo de DirectX 11 había llegado a su fin.

Pero, ¿era tan sencillo como lanzar una API mejor para que los videojuegos dieran un salto de calidad? No, por desgracia en informática nada es tan fácil. Vamos a empezar la casa por los cimientos que luego se nos cae encima.

¿Qué es DirectX de Microsoft? DirectX es un conjunto de API utilizadas para gestionar tareas relacionadas con entornos multimedia. Esto incluye la programación de juegos en plataformas basadas en Microsoft como Windows y Xbox. Y, ¿qué es una API?

Una interfaz de programación de aplicaciones (API) permite que dos o más programas informáticos se comuniquen entre sí. Piénsalo como si fuera tu smartphone. Si tu madre te envía un mensaje con la lista de la compra, tu teléfono recibirá esos datos y te los mostrará. Eso es básicamente una API.

¿Cuáles son las diferencias entre DirectX 11 y DirectX 12?

En pocas palabras, DirectX 12 es la última versión de DirectX. Una de las diferencias más notables entre las dos es cómo interactúan con tu hardware. La mayoría de los juegos desarrollados con DirectX 11 solo utilizan entre dos y cuatro núcleos de CPU.

Uno de estos núcleos suele dedicarse a decirle a la GPU lo que tiene que hacer. A continuación, el juego utiliza los núcleos restantes para manejar diversos ajustes que consumen mucha CPU, como las partículas del juego o la distancia de dibujado.

En ese sentido, DirectX 12 reparte la carga de trabajo de la CPU entre varios núcleos y también permite que cada núcleo hable con la GPU al mismo tiempo.

DirectX en Windows 10

DirectX 12 también viene con algunos extras. Entre ellas, la computación asíncrona y los objetos de estado de canalización (PSO). La computación asíncrona aumenta la utilización de la GPU al permitir que varias cargas de trabajo funcionen en paralelo. De este modo, se aprovecha todo el potencial de la tarjeta gráfica.

Aparte del renderizado de gráficos, la GPU es responsable de otras muchas tareas, como la ejecución de algoritmos de aprendizaje automático. Con DirectX 11, la GPU solo puede realizar una de estas tareas a la vez y en un orden determinado. Cuando esto ocurre, el rendimiento se resiente porque no se están utilizando todos los recursos de la GPU.

Para evitar este cuello de botella, DirectX 12 introdujo los PSO, objetos que describen el estado de todo el canal gráfico. Los PSO son como una botella que contiene los distintos estados y componentes necesarios para crear una imagen.

¿Pero qué...? Microsoft añade por sorpresa el soporte DirectX 12 a Windows 7

De este modo, la GPU puede preprocesar cada estado dependiente en lugar de tener que volver a calcular continuamente los estados en función del canal gráfico actual. Esto reduce significativamente la sobrecarga de la CPU que se encuentra en DirectX 11 y mejora el rendimiento.

¿En qué se traduce esta diferencia? Según Microsoft, DirectX 12 reduce la sobrecarga de la CPU hasta en un 50% y mejora el rendimiento de la GPU hasta en un 20%. Aunque se trata de mejoras sustanciales, no significa que los resultados sean los mismos.

DirectX 12 Ultimate

Por qué cambiar de DirectX 11 a DirectX 12 no es sencillo

DirectX 11 se lanzó por primera vez para Windows Vista el 27 de octubre de 2009, mientras que DirectX 12 se estrenó en 2015: eso es una brecha de seis años entre DirectX 11 y DirectX 12. Durante este tiempo, miles de juegos se han programado sobre DirectX 11.

DirectX 11 es lo que se llama una API de alto nivel. En pocas palabras, las API de alto nivel son más fáciles de usar para los desarrolladores. El resultado son juegos estables, pulidos y jugables. Por otro lado, DirectX 12 es una API de bajo nivel y es una bestia diferente comparada con DirectX 11.

Vulkan, la alternativa a DirectX 12 para PC, consolas y smartphones

Aunque permite a los desarrolladores afinar la optimización a un nivel granular, también exige amplios conocimientos para utilizarla. Un juego desarrollado en DirectX 12 podría acabar con peor rendimiento dependiendo del conocimiento de la API que tenga el desarrollador.

DirectX 12 incorpora algunas mejoras, pero todo depende de lo bien que el desarrollador sepa aplicarlo. Por este motivo, muchos desarrolladores prefieren utilizar API de alto nivel como DirectX 11 incluso ahora, en pleno 2022. Y más adelante pasar un traductor automático que lo pase a DirectX 12.

Descubre más sobre , autor/a de este artículo.

Conoce cómo trabajamos en Computerhoy.