DirectX 12: Todo lo que debes saber

La primera edición de la Game Developers Conference en el año nos ha dejado muchas cosas, pero una de las más importantes es DirectX 12. La última versión mayor del API fue lanzada en octubre de 2009, y como era de esperarse, los desarrolladores quieren obtener todos los detalles que sea posible. ¿Lo mejor de la velada? Nada menos que la programación gráfica de bajo nivel en Direct3D 12.
La idea de que un desarrollador pueda programar “más cerca del metal” ha existido por años. En ese tiempo surgieron diferentes argumentos a favor y en contra del proceso, pero lo que era un debate clásico entre expertos se transformó en un tema de muy alto perfil tras el anuncio del API Mantle por parte de AMD. Algunos benchmarks son más que contundentes... pero lo cierto es que no todo reluce en Mantle, y entre sus bordes más filosos se encuentran los requerimientos de hardware (Graphics Core Next) y la ausencia de soporte para consolas. Por supuesto, también está DirectX. A pesar de los beneficios que entregan sus últimas versiones, el sentimiento general es que DirectX 9 estableció cierto techo artificial para el API. Recuerdo perfectamente el caso de Crysis y los hacks de los entusiastas para obtener una calidad gráfica en Windows XP (con DirectX 9) idéntica a la que estaba disponible bajo el combo DirectX 10/Windows Vista. Algunas compañías se resistieron bastante a las versiones superiores de DirectX (como fue el caso de Valve) pero con la Game Developers Conference finalizada, Microsoft espera cambiar un poco la historia, y responder mejor a las necesidades de los desarrolladores a través de DirectX 12.

Lo primero que debemos entender sobre DirectX 12 es que se encuentra bastante lejos en el calendario. Lo único parecido a una fecha que ha revelado Microsoft es “Navidad 2015”, y si los cálculos no nos fallan, Windows 9 ya debería ser un hecho para ese entonces. En lo referente a hardware, el gigante de Redmond no dio indicios de que exista algún drástico prerrequisito a cumplir. Nvidia confirmó el jueves pasado que todas sus tarjetas gráficas compatibles con DirectX 11 tendrán soporte DirectX 12, incluyendo a las arquitecturas Fermi, Kepler y Maxwell, y lo mismo publicó AMD en el caso de sus placas basadas en Graphics Core Next. Otro aspecto interesante es que DirectX 12 no estará limitado a PCs, y lo más probable es que lo veamos en acción sobre la Xbox One y dispositivos móviles. Si existe un punto de preocupación, es el soporte entre los sistemas operativos. Windows 7 tiene más del 50 por ciento del mercado, y no se esperan cambios bruscos para el año que viene. Si por algún motivo Microsoft decide que DirectX 12 no esté disponible en Windows 7, estaría generando otro incidente similar al de DirectX 10, cuando se negó a “bajarlo” a XP.

Eventualmente llegamos a la programación de bajo nivel en Direct3D 12. Las demandas en consumo de energía, eficiencia y recursos para los desarrolladores están forzando un giro hacia el concepto de “hacer más con menos”, y para lograrlo, la programación de bajo nivel es crítica. En esencia, lo que busca Direct3D 12 es reducir el “overhead” del U (reduciendo así su utilización), y más allá de las diferencias técnicas, esto coloca a DirectX 12 sobre el mismo campo de juego en el que se encuentra Mantle. Las reacciones de los desarrolladores han sido muy interesantes: Jason Mitchell de Valve quiere más información sobre las versiones de Windows que recibirán a DX12. Richard Matthias de Ninja Theory destacó la necesidad de un mecanismo de extensión adecuado, para que el API no pierda terreno frente a otras alternativas. Francois Piednoel de Intel adelantó que DirectX 12 demandará mayor rendimiento de un sólo hilo para alimentar más rápido al GPU. Bobby Anguelov de Ubisoft celebra la ausencia de requerimientos específicos de hardware y el soporte para Xbox One, y Cort Stratton de Naughty Dog se limitó a decir que era “familiar”, probablemente en referencia a Mantle.
Será cuestión de tiempo para que Microsoft permita a los desarrolladores obtener un más profundo a DirectX 12, y comiencen a surgir demostraciones públicas. Tanto las dudas como el sarcasmo de algunos desarrolladores ya se encuentran flotando en la Web, pero el sentimiento general hacia DirectX 12 es de entusiasmo. ¿Y tú qué opinas? ¿Crees que DirectX 12 dará el gran salto que todos esperan? Los comentarios están abiertos.
Me parece que Microsoft va a llegar tarde a la fiesta, si de por sí AMD acaba de mover todo el mercado con Mantle, que ojo, está en pañales en estos momentos, pero ya está en el mercado y en vías de crecimiento, Nvidia y OpenGL van por el mismo camino de reducir consumo de recursos. Esto debería de estar llegando en estas fechas no dentro de dos años, ya que esto va provocar (que si bien nos va) se vean juegos con esta API al menos a la segunda mitad del 2016, ni que decir de la fragmentación que crea Microsoft al casar DirectX con alguna versión de Windows. Será interesante ver como está el mercado cuando llegue DirectX 12, porque Microsoft sigue creyendo que son los noventas o los dosmil. dónde podía dormir en sus laureles y lanzar tecnologías sin prácticamente competencia, Y si Mantle tiene éxito (además de Valve con SteamOS en juego y GOG soportando GNU/Linux) puede que veamos como DirectX pierda por primera vez terreno.
No se si sera porque el autor del post sabe de informatica o que, pero es la única web donde veo la imagen que explica perfectamente el DX12 (la de los threads, aunque falta explicarla). No tengo un conocimiento muy profundi de DX, pero segun tengo entendido solo hay un thread que se encarga de ejecutar las llamadas de dibujo, tal como se ve en la version de DX11. Segun se puede observar, la nueva api de dibujo paraleliza el trabajo (asegurarse que los datos estan correctos, compilar los shaders, etc), ahora cada thread esta a carga de procesar sus respecticas llamadas de dijo. Y solo queda en serie la parte del kernel, que seria que thread tienen en un momento determinado al hardware y se encarga de la ejecucion sobre el hardwere. Para mi es una version de DX11 pero con alto grado de paralelismo.
PD: Para cuando se va a arreglar el favicono de la web? Me molesta al no tenerlo en el marcador :(
"Si por algún motivo Microsoft decide queDirectX 12 no esté disponible en Windows 7, estaría generando otro incidente similar al de DirectX 10, cuando se negó a “bajarlo” a XP."
Si eso pasara seria como un puntapie en la cara :( que dolor de cabeza.
Debes iniciar sesión para publicar un comentario.