DirectX es una colección de API, o interfaces de programación de aplicaciones, que utiliza el software para representar contenido multimedia y comunicarse con hardware gráfico. El principal componente API de DirectX, Direct3D, maneja las comunicaciones entre el software y el hardware de gráficos. Debido a que todo el hardware es diferente, el uso de una biblioteca estandarizada de funciones y llamadas para comunicarse con su tarjeta gráfica acelera el desarrollo del juego. Esto se llama abstracción de hardware y es el trabajo principal de la API.
Piense en los automóviles: si puede conducir un automóvil, puede conducir prácticamente todos. Los pedales del acelerador y del freno están en el mismo lugar, y el volante gira en la misma dirección y las puertas se abren hacia afuera. Puede haber algunas diferencias menores en las funciones no críticas como la radio, pero en general sabe qué esperar. DirectX y Direct3D son así, lo que permite a los desarrolladores interactuar con una amplia gama de hardware utilizando las mismas herramientas. Y dado que la mayoría de los desarrolladores de juegos usan la biblioteca estándar de Direct3D, cualquier cambio en la API puede afectar tanto a los jugadores como a los programadores.
¿Qué hay de nuevo en DirectX 12?
Cada actualización importante de DirectX y Direct3D trae nuevas características y desarrollos. Direct3D 12, sin embargo, trajo algunos cambios especialmente significativos. De hecho, podría estar marcando el comienzo de una nueva área de API de gráficos de bajo nivel que cambiará la forma en que se desarrollan los juegos.
Abstracción de hardware de nivel inferior
DirectX 12 ahora permite a los desarrolladores acercarse al «metal» del hardware de gráficos de sus usuarios, brindando acceso a funciones que antes no estaban disponibles para los desarrolladores. Exponer hardware de nivel inferior significa que los desarrolladores expertos pueden escribir código más eficiente que se ejecuta más rápido. Específicamente, los desarrolladores pueden mejorar la optimización con un rendimiento de subprocesos múltiples más rápido y una utilización de la CPU más eficiente. Potencialmente, esto podría permitir optimizaciones de bajo nivel similares a las que vemos en los juegos de consola donde los juegos están ajustados para hardware de rango medio extremadamente específico, logrando un rendimiento que sería imposible sin tales optimizaciones hiperespecíficas.
Anteriormente, DirectX 11 solo ofrecía un nivel bastante alto de abstracción de hardware, lo que simplifica enormemente el proceso de codificación. De hecho, esa es la idea detrás de lo que hace que las API de hardware sean tan poderosas. Pero también significó que las oportunidades para ajustar el código con características específicas del hardware fueran menos frecuentes. Blog para desarrolladores de Microsoft proporciona algunas ideas excelentes sobre cómo, exactamente, DirectX 12 logra esto.
Rendimiento multinúcleo mejorado
En los últimos años, los jugadores han llegado a aceptar que las CPU multinúcleo no son tan útiles para jugar. En cambio, los juegos se basan en un rendimiento rápido de un solo subproceso. Esto sucede en parte porque DirectX 11 no permite tanta paralelización. Múltiples subprocesos de CPU pueden enviar comandos de dibujo simultáneamente. Sin embargo, se seguirán procesando todos en una cola, uno a la vez. DirectX 12 elimina esa limitación y permite que las CPU multinúcleo envíen instrucciones simultáneas a la GPU, lo que abre la puerta a un mayor rendimiento en los procesadores multinúcleo.
Reducción de gastos generales de llamada de sorteo
Con DirectX 11, una parte significativa de la potencia de la CPU se gasta en interpretar las instrucciones de la API en lugar de ejecutar el código del juego. DirectX 12 reduce la sobrecarga de la API, lo que libera recursos informáticos para ejecutar el código del juego. Esto significa que los juegos con CPU limitada podrían tener un mayor rendimiento, ya que su potencia de CPU se libera para manejar el código del juego. La mayoría de los juegos no están limitados por la CPU hoy en día, pero es posible que los juegos más nuevos empujen este sobre aún más.
Multiadaptador explícito
DirectX 12 tiene el poder de combinar varias GPU (también conocidas como «adaptadores de pantalla») en una sola unidad lógica. Esta característica, llamada Multiadaptador explícito, permite que el software instruya múltiples GPU como una sola GPU. Por ejemplo, con DirectX 12, la GPU integrada en su máquina ahora puede asociarse con su GPU discreta, prestando su propia potencia de procesamiento. Un mayor soporte de API también puede significar una mayor confiabilidad y eficiencia en configuraciones SLI/CrossFire de múltiples GPU. En las pruebas de Microsoft, el uso de gráficos integrados junto con gráficos discretos proporcionó una borde pequeño pero notable en puntos de referencia.
¿Cuánto importa DirectX 12 para los jugadores?
Al igual que muchas mejoras incrementales, los jugadores no van a ver las diferencias entre DirectX 11 y DirectX 12 de la noche a la mañana. Las nuevas características no ofrecen nuevas opciones de renderizado que sorprendan a los usuarios. Tampoco verás un salto de 100 FPS entre los dos estándares. Pero estas ganancias en eficiencia conducirán eventualmente a un mayor rendimiento en hardware menos poderoso, mejorando la potencia de su PC sin actualizar su hardware.