DirectX 12 ¿Ha cumplido objetivos? ¿Merece la pena?

DirectX 12 ¿Ha cumplido objetivos? ¿Merece la pena?
20 de marzo, 2017

DirectX 12 es la última versión de la interfaz de programación de aplicaciones (API) de Microsoft. Librerías utilizadas para la creación de aplicaciones multimedia y de vídeo, especialmente videojuegos, que funcionan exclusivamente con Windows 10 (y Xbox One). Motivos técnicos aparte, a pocos escapa que Microsoft también las utiliza con el objetivo de potenciar la adopción del sistema en detrimento de Windows 7 y esperando sea un motivo suficiente para que muchos jugones en PC lo utilicen, como hemos ido viendo en los datos de plataformas como Steam.

Aunque existen otras especificaciones estandarizadas para crear contenido multimedia como OpenGL y su prometedora última versión Vulkan, el dominio de Windows en PCs convierte a DirectX en referencia para juegos en ordenadores personales, y con ello, en una de las características más evidentes donde Windows supera a otros escritorios como OS X y Linux.

Como en cada nueva versión de estas APIs, Microsoft prometió grandes mejoras en DirectX 12. Principalmente un mayor aumento de rendimiento al incluir optimización específica para aprovechar mejor los recursos reales del sistema, especialmente en CPUs con más de cuatro núcleos de procesamiento y las configuraciones multi-GPU.

También se prometieron beneficios al jugar en ordenadores portátiles o tablets Windows gracias a una nueva función multi-adaptador que permitiría a los desarrolladores dividir las tareas de procesamiento entre la GPU principal y los gráficos integrados de la CPU. Cuando se implementara, la GPU dedicada seguiría a cargo de las tareas más pesadas pero la integrada sería capaz de realizar otras tareas simultáneamente.

En resumen, mejor gestión de los recursos, en la acumulación de la memoria de vídeo y en el rendimiento general que se calculaba entre un 20 y un 25 por ciento. Por supuesto, se necesita el concurso de los fabricantes de gráficas y de los desarrolladores de juegos y por lo que hemos ido viendo hasta ahora, el apoyo a DirectX 12 ha sido mínimo a todos los niveles. En contadísimas ocasiones las nuevas API han mostrado sus ventajas, incluyendo en los test de rendimiento frente a DX11.

¿Merece la pena DirectX 12?

En la reciente Game Developers Conference, una conferencia del CEO of Nixxes (compañía que ha acreditado un buen trabajo en el ports de consola a PCs con Rise of the Tomb Raider o Deus Ex Mankind Divided) nos pone en situación del estado actual de DX12 desde el punto de vista del desarrollador de videojuegos. Y no es tan bueno como prometieron. Necesita un enorme esfuerzo en el desarrollo y conviene ser realista ante las expectativas generadas. 

DirectX12_3

Jurjen Katsman comenzó exponiendo la desilusión de los consumidores por no ver concretadas las promesas en torno a la nueva generación de las API. Además de la falta de grandes mejoras en el rendimiento, los consumidores esperan con impaciencia la utopía multi-GPU que se les había prometido, en el que no solo se podía mezclar el uso de varias GPUs de distinta marca y modelo, sino apilar hasta su memoria de vídeo. Una posibilidad teórica con DirectX 12, pero que los desarrolladores argumentan es más fácil decir en un papel que hacer en el mundo real.

DirectX 12

Otra de las áreas clave en las que DirectX 12 está diseñado es en la mejora del rendimiento mediante la distribución de la carga en varios núcleos de procesamiento. Ello podría ser de mucha utilidad si se aprovechara la potencia de los actuales procesadores de 4,6 u 8 núcleos (con el doble de hilos). Según el ejecutivo, para los usuarios de equipos de alto rendimiento con CPUs razonablemente rápidas, las mejoras son insignificantes, incluyendo juego a altas resoluciones 1440p y 4K Ultra HD, donde los ratios de frames son más bajos.

DirectX 12

El cálculo asíncrono, otra gran característica introducida en DirectX 12, no ha funcionado como se esperaba y hay juegos que lo utilizan mejor que otros dependiendo de la marca de GPU utilizada. Un gran problema de acuerdo a los desarrolladores. El soporte de hardware para cálculo asíncrono se limita sólo a las últimas arquitecturas de GPU y requiere un ajuste más específico para el hardware. Las mejoras de rendimiento observadas se producen más en ecosistemas cerrados, tales como consolas, por lo tanto, no necesariamente llegan a la PC. Los desarrolladores debe administrar su tiempo y no pueden centrarse en hardware tan específico, explica el CEO de Nixxes.

DirectX12_5

También problemas para lograr la viabilidad en el apilamiento de memoria de múltiples GPUs. Obtener los datos de la memoria física de una GPU “vecina” es un proceso costoso y consume mucho tiempo. La base de usuarios multi-GPU es todavía demasiado pequeña para que los desarrolladores gasten esfuerzo en este apartado.

DirectX12_6

El desarrollador también destaca la complejidad de los drivers que ofrecen los fabricantes de gráficas. Si la idea detrás de las APIs de nueva generación es hacer menos relevantes los controladores de gráficos, la situación ha empeorado. La complejidad ha aumentado en las áreas de gestión de memoria, en multi-GPU y en la tecnología subyacente necesaria para permitir el cálculo asíncrono. Mención aparte para los trucos que utilizan los proveedores para mejorar el rendimiento, que a su vez significa incertidumbres para el desarrollador en los casos en que el controlador invalide ciertas técnicas, simplemente para exprimir un poco de rendimiento extra.

DirectX12_8

Dicho todo lo anterior ¿Merece la pena DirectX 12? El desarrollador destaca “Rise of the Tomb Raider” como el camino a seguir, donde los usuarios sí notaron “avances significativos” con la nueva API. El problema es que necesita un esfuerzo enorme que no debe desestimarse. También destaca el trabajo de la API frente al Alternate Frame Rendering (AFR) usado anteriomente en multi-GPU. Más trabajo para los desarrolladores, pero un control mucho mayor que beneficiará a los usuarios. Otro punto que destaca es que la adaptación exitosa a DirectX 12 establece una buena base para la migración a Vulkan (en su mayoría para móviles), ya que utiliza conceptos parecidos, tecnologías y APIs como DX12.

DirectX12_9

Los desarrolladores y los consumidores deben ser realistas sobre lo que deben esperar de DirectX 12. En particular, los desarrolladores deben centrarse en hacer buenos juegos, sin sacrificar sus recursos. Mejor un buen juego con DX11 que un DX12 como muestra tecnológica, pero no un buen juego. Era predecible pero no está de más recordarlo. DirectX 12 tiene mucho potencial, pero -hasta ahora- poco resultado práctico. 

  • Share This