Direct X 12, la revolución de los juegos… a medias

¿La solución será Vulkan?

Recuerdo no hace tanto las ventajas de Direct X 12, una api que permitía trabajar mucho más cerca del hardware, saltándose muchas capas intermedias, lo que haría que los juegos fueran mucho más rápidos y se conseguirían mejores efectos porque el hardware daría más de sí.

Vale, pues eso pasa en algunos casos, pero no es ni de lejos la panacea.

La Vodoo Banshee 3DFX, la primera aceleradora gráfica que tuve

Desde el  principio de los tiempos, cuando estaban las famosas tarjetas aceleradoras  3DFX, siempre ha habido OpenGL, una api abierta que cualquiera podía utilizar, y los distintos Direct X, la API de Microsoft para Windows.

La última idea de Microsoft ha sido Direct X 12, una API que teóricamente corrige los problemas multihilo de Direct X 11 y consigue una mejora de rendimiento cercano al 25%, incluso en webs como Xataka.com hablan de hasta un 50%.

¿La realidad? Que tienen que cambiar mucho las cosas.

Una de las ventajas de Direct X 12 es la computación asíncrona y la arquitectura de las tarjetas AMD responden muy bien a esto. Sin embargo la arquitectura de las de las tarjetas Nvidia resulta que no. Las anteriores, con la tecnología Maxwell, se atragantaban y cuando en un juego con Direct X 11 sacaban todo el rendimiento, en Direct X 12 son las AMD las que lo sacan.

Las nuevas con la arquitectura Pascal ya implementan la computación asíncrona por lo que, según Nvidia, ya son plenamente compatibles.

Sin embargo, las tarjetas AMD, tanto las anteriores como la R9 Fury como la nueva RX 480 tienen una mejora que sube el 25 o 30% su rendimiento respecto al mismo juego con Direct X 11.

Eso está muy bien, aunque lo dueños de tarjetas Nvidia ven como sus tarjetas, mucho más potentes en Direct X 11, siguen siendo más potentes en Direct X 12 pero con unas diferencias mucho menores.

Pero si eso es malo porque deja claro que Nvidia no aprovecha bien la API, es directamente vergonzoso lo que sucede en una tarjeta Nvidia cuando ejecuta un juego con Direct X 12 o con Direct X 11.

Como se puede ver en el vídeo, Total War Warhammer tiene la posibilidad de ejecutarse con cualquiera de las dos APIS.

La primera parte del vídeo se ejecuta con DX  12 y tiene una media de 102 fps en modo Ultra a 1080p. Y ahí me habría quedado yo, más que feliz sabiendo que lo iba a poder jugar con total tranquilidad, cuando me dio por probarlo con Direct X 11 y saltó la sorpresa, una media de 113 fps con la api antigua.

Esto que pasa con el juego, no es el único. Gears of War da un montón de problemas con DX 12. Hitman y Tomb Raider se pueden ejecutar en ambos y la mejora gráfica es nula aunque al menos el rendimiento no disminuye, e incluso en Tomb Raider aumenta ligeramente.

Hay otra parte a tener en cuenta, Vulkan, que ha salido hace apenas cinco meses. Antes mencionaba que OpenGL lleva desde el principio de los tiempos como competencia directa y esto no ha cambiado, solo que ahora se llama Vulkan. Es una api de bajo nivel como Direct X 12 pero con una diferencia notable y es que se puede utilizar para todos los sistemas operativos, no solo Windows 10. Funciona en IOS y Android, en Windows 7,8 y 10, en Ubuntu, en Steam OS. Una variedad enorme que facilita mucho portar los juegos y el resultado es bastante mejor. Doom, por ejemplo, está desarrollado con Vulkan y tanto en Nvidia como en AMD funciona como un tiro.

Doom mejora su rendimiento con Vulkan un 26%. Una GTX 1070 con Vulkan va a la misma velocidad que una GTX 1080 con OpenGL

Vulkan tiene el apoyo de todos los desarrolladores y fabricantes de hardware, así como fabricantes de motores gráficos que ya lo incluyen, por no mencionar las plataformas de venta digital como VALVE. ¿La razón de este apoyo cuando Direct X siempre ha tenido ventaja y de facto es el standard?

Por un lado los problemas con las tarjetas Nvidia pero también el problema con la Universal Windows  Platform. (UWP) Todos los juegos de Microsoft para ONE ahora aparecerán para Windows 10. El problema es que tienen que aparecer en la UWP, una capa extra que controla todas las funciones del juego o aplicación pero que ralentiza el funcionamiento, aparte de que solo pueden aparecer en la tienda de Windows 10.

Esto podría ser un problema menor pero tiene una pega importante y es que se empuje desde Microsoft a los desarrolladores a sacar sus juegos con directx 12 y UWP tendiendo a hacer un entorno cada vez más cerrado y dejando fuera las otras tiendas. Algunos desarrolladores, como el cofundador de EPIC Tim Sweeney, ya han manifestado que temen que sus juegos funcionen peor si se compran en Steam, por ejemplo, que si se compran en la tienda de Windows 10. A día de hoy es todo lo contrario, la tienda de Windows 10 es el horror, pero mediante modificaciones en el sistema operativo o en direct x 12 temen que pueda tenderse a esto.

Prescindir de Windows es muy difícil pues es el OS universal. Steam lo ha intentado publicando su propio OS gratuito y diseñado para jugar y la realidad es que los juegos funcionan más rápido en Windows 10 que en SteamOS.

Pero si no dependen de la API de Microsoft la portabilidad de los juegos a todas las plataformas es muy sencilla con Vulkan, a lo que se añade que es completamente gratuito, y es una forma de escapar en buena parte de esa pinza entre UWP y Direct X 12.

El caso es que nos esperan tiempos revueltos. Las nuevas supertarjetas son más caras porque aunque dan un rendimiento fantástico, no mantienen la diferencia con las tarjetas de la competencia que son de media un tercio más económicas.

El mal resultado de Direct X 12 en Total War Warhammer es claramente de Creative Assembly que han hecho un muy mal trabajo, aunque no es extraño si tenemos en cuenta que el juego está patrocinado por AMD, pero el problema de Direct X 12 con Nvidia es generalizado aunque no llegue a estos extremos en otros juegos. Desde luego, para Nvidia a día de hoy Direct X 12 no representa ninguna ventaja. En cambio Vulkan presenta ventajas para todo el mundo menos para Microsoft.

Promete ser interesante la evolución del asunto porque puede ser la clave en el rendimiento de los juegos.

Saludos fremen.