DirectX 12 se prevé para finales del año 2015.

DirectX 12: más rendimiento, menos consumo

Aunque los miembros de estudios de desarrollo ya pueden acceder a versiones previas de DirectX 12, todavía le queda mucho para que la disfrutemos en nuestros PCs (por no hablar de juegos). ¿Quizá venga integrada con el rumoreado Windows 9, que se presentaría este mismo 30 de septiembre?

, , , , ,

Microsoft presentó DirectX 12 en la Games Developer Conference (GDC) allá por el lejano marzo de este año. Desde entonces no sabíamos nada, hasta que en el SIGGRAPH 2014 sí, sigue existiendo y la edición número 41 tuvo lugar hace un par de semanas Intel mostró una demo ejecutándose sobre la supertablet de Microsoft, la Surface Pro 3.

DirectX 12 es una API enfocada a la movilidad y a la eficiencia energética.

Cuando se pasa al modo DirectX 12, el consumo de la CPU se reduce a la mitad e incluso en la GPU se nota mejoría.

La elección de la plataforma no es casual y Surface Pro 3 que por cierto se lanza en España este viernes es el ejemplo perfecto para demostrar el ahorro de energía que representa DirectX 12 al eliminar capas de abstracción intermedias y permitir un acceso más directo al hardware como por ejemplo la nueva Radeon que te presentaba Santi ayer, extrayendo así un rendimiento cercano al que consiguen las consolas. No estamos hablando aquí de potencia bruta, sino de mejora sustancial sobre los mismos componentes al reducir el impacto del sistema operativo, el driver y la biblioteca gráfica.

DirectX 12: Una demostración rebuscada, unas mejoras reales

Lamentablemente los desarrolladores de Intel se extralimitaron un poco, forzando los parámetros de la demo hasta hacerla confusa y poco relevante para el futuro uso real de la API gráfica. Como puedes ver en las imágenes más abajo, en la demo aparece un campo de asteroides, en concreto 50.000. Según explican los ingenieros de Intel y Microsoft, cada uno de estos asteroides es diferente, por lo que “se necesitan” 50.000 llamadas a la función de dibujado de objetos de Direct3D.

En una aplicación real esto jamás se haría así, porque lo habitual con grupos de objetos similares es dibujar uno (o varios, pero no todos) de los objetos y aplicar transformaciones de escala, de vértices, de texturas… para diferenciarlos. Otra opción es la generación procedimental tan de moda ahora y que, dependiendo de la implementación, ni siquiera requeriría llamadas de dibujado de DirectX. Lo que nunca se haría es renderizar todos y cada uno de los objetos con llamadas independientes.

Aparentemente, en Microsoft DirectX 12 las mejoras son principalmente en las funciones de dibujado de objetos así que los desarrolladores de Intel se centraron en ello para la demo. Una vez aceptado que la demo es totalmente sintética y artificial, podemos maravillarnos con las cifras aportadas y que puedes ver en las gráficas a continuación. A la izquierda la demo en modo DirectX 11 y a la derecha en modo DirectX 12.

Demo de DirectX con una tasa de frames desbloqueada.Demo de DirectX 12 con tasa de frames desbloqueada.

En resumen, incrementos en el framerate de hasta el 74% (33 frente a 19) mientras que cuando se bloquea la tasa de fotogramas el consumo de energía es casi la mitad. Sin duda, Microsoft se ha puesto las pilas ante la “amenaza” de AMD Mantle.