Principales características de DirectX 12: detalles

Escrito por Guillermo de Ángel
Tarjetas Gráficas

Ayer se publicó un post en el blog de AMD en el que Robert Hallock, director de marketing técnico de la compañía, ha compartido algunos detalles sobre dos de las características más importantes de DirectX 12. Estas características son “asynchronous shaders” y “multi-threaded command buffer recording”, y van a suponer una gran diferencia en el tema de los juegos.

Async shaders

Esta característica permite a los motores gráficos realizar cálculos u otras actividades con la GPU durante vacíos en la carga gráfica a procesar requerida por un juego.

This feature allows a game engine to execute GPU compute or memory activities during “gaps” in the graphics workload presented by a game.

Aunque parece muy lógico el permitir que las funciones gráficas, de cálculo y de memoria de la GPU operen simultáneamente, en versiones anteriores de DirectX no era posible, pues estaban limitadas a una sola cola de procesamiento en serie para todos los tipos de tareas.

Pipeline_behavior

De este modo, todas las tareas gráficas, de cálculo y de memoria tenían que esperar que terminasen otras operaciones antes de hacer lo suyo. Esto resulta en momentos en los que el hardware está sin nada que hacer, lo que quiere decir que baja el rendimiento.

Por otro lado, los shaders asíncronos de DirectX 12 consiguen repartir estas tareas entre varios hilos de ejecución para reducir el tiempo total necesario. Estos shaders asíncronos son un componente importante de la experiencia de juego porque menor tiempo de renderizado supone menor retardo en el dibujado y por tanto mayor rendimiento (más fps, mejor responsividad en entornos VR, etc)

La arquitectura GCN de AMD está específicamente diseñada para conseguir una “granularidad” muy fina en el tema de los async shaders con hardware dedicado a esta tarea, conocido como el Asyunchronous Compute Engine (ACE).

Multi-threaded command buffer recording

El buffer de comandos es la lista de tareas pendientes de un juego, una serie de cosas que la CPU debe organizar y presentar a la tarjeta gráfica para que esta las procese. Elementos de este tipo pueden ser la iluminación, situar personajes, cargar texturas, crear los reflejos, etc.

Los PCs actuales están equipados normalmente con CPUs de varios núcleos, y en DirectX 11 muchos de los núcleos no tenían carga asignada mientras que uno de ellos hacía todo el trabajo, debido a la incapacidad de DirectX 11 de dividir el buffer de comandos de un juego en tareas pequeñas que puedan ser procesadas en paralelo. Además está el hecho de que una gran parte del tiempo se gasta en interpretar las directivas de la API u “overheads”, lo que deja menos tiempo para ejecutar el código del juego, que es lo que nos interesa.

Esto es lo que DirectX 12 viene a solucionar.

cmd_buffer_behavior

Los beneficios del uso correcto de DirectX 12 ya están empezando a aparecer, con la colaboración de Oxide Games y Stardock con AMD para la creación de Ashes of the Singularity, un juego de estrategia que verá la luz dentro de un tiempo y utilizará todos los núcleos disponibles de un procesador para ofrecer un rendimiento, calidad de imagen y resoluciones que, en palabras de Brad Wardell (CEO de las desarrolladoras), “ni siquiera son una posibilidad con DirectX 11“.

results

Los productos AMD que serán compatibles con DirectX 12 (una vez tengamos Windows 10 Technical Preview Build 10041 o posterior y los últimos drivers) serán los siguientes:

  • AMD Radeon R9 Series graphics
  • AMD Radeon R7 Series graphics
  • AMD Radeon R5 240 graphics
  • AMD Radeon HD 8000 Series graphics for OEM systems (HD 8570 and up)
  • AMD Radeon HD 8000M Series graphics for notebooks
  • AMD Radeon HD 7000 Series graphics (HD 7730 and up)
  • AMD Radeon HD 7000M Series graphics for notebooks (HD 7730M and up)
  • AMD A4/A6/A8/A10-7000 Series APUs (codenamed “Kaveri”)
  • AMD A6/A8/A10 PRO-7000 Series APUs (codenamed “Kaveri”)
  • AMD E1/A4/A10 Micro-6000 Series APUs (codenamed “Mullins”)
  • AMD E1/E2/A4/A6/A8-6000 Series APUs (codenamed “Beema”)

Más detalles sobre esta info en el post de Robert Hallock.

Continúa leyendo
  • Jhonatan Correa

    Es idea mía, o en la imagen aparece el Portaaviones del EE?

  • Joss Calvo Sala

    solo son tarjetas amd y de nvidia no hay informacion?

    • truth

      No te preocupes esto es lo normal ver a AMD soltando humo como locos con DX12 a Nvidia con la jugosa delantera que lleva poco le importa tirar humo para vender, AMD si lo necesita y mucho.

      • Rodri

        cuando nvidia habla de algo? solo cuando hay juegos como siempre pagando para que este optimizado solo para nvidia

      • CЯΔ§H☆SρΘ†

        AMD no va a poner en su propio blog cuales son las series compatibles de su competencia, lee bien truth o queres que te atienda?

      • EpsylonRad

        Como te quedo la C@L@ Cuando leíste “ACE”????

    • MELERIX

      principalmente con tarjetas AMD (de momento) recuerda que el nucleo de DX12 es practicamente Mantle 1.0, de todos modos las tarjetas NVIDIA de la generacion que vienen tambien tendran soporte completo DX12, asi como las integradas de Intel tambien.

    • CЯΔ§H☆SρΘ†

      ya estan diciendo hace rato que envidia es 99,9% compatible, mira el graficaso atomicamente descriptivo que te dejo aca abajo

  • TXPlotoSQlo

    :_) Lloro de felicidad con esta noticia, siento que por fin podremos aprovechar y exprimir todo el hardware por el que hemos pagado. Dos cosas… 1) Las consolas, esto se aplicará también en ellas o es solo a nivel de PC? yo juego en PC, pregunto solo por curiosidad. 2) Desarrolladores de video juegos: Con sistemas que aprovecharán y administrarán eficientemente el hardware ya quiero ver las excusas que nos dirán cuando sus lastres no corran cómo deben para como siempre no aceptar sus malas optimizaciones…

    • MELERIX

      en la consolas ya se programa en bajo nivel, con o sin: DX12 o Mantle o Vulcan, aun asi las consolas no tienen el potencial de superar a un PC por la sencilla razon de que su hardware no es actualizable por el usuario.

      • CЯΔ§H☆SρΘ†

        nadie pregunto por cual es potente capitan de los boludos, en Xbox si se implementara el dx12 en ps4 no tengo idea, chau me fui a comer un chori

        • MELERIX

          tanto en la PS4 como en la XBOX ya se programa en bajo nivel, lee las SDK De las API y lo entenderas.

    • fulanodetal

      Poco vas a exprimir, ya se encargaran de que tengamos que pilarnos nuevas graficas.

      • EpsylonRad

        Que mala onda que tenés!! jajajja

  • Guiako

    @txplotosqlo:disqus. No estés tan feliz, el hardware se volverá obsoleto en el mismo tiempo, como siempre, ya encontraran la forma de que así sea, ya sea sacando juegos con un apartado técnico mas potente o poco a poco imponiendo cosas como los 4k, la RV o los procesadores de 6 núcleos o mas.
    Respecto a las consolas, no creo que les afecte demasiado considerando que en estos sistemas cerrados siempre se ha programado a bajo nivel “metal”, con esas CPU a tan baja frecuencia si no usaran ya bien sus 6 hilos disponibles no creo que pudieran haber movido juegos como Battlefield4 o AC Unity, así que no creo que se beneficien demasiado, mas allá de que DX12 facilitará aún mas los ports entre estas consolas y los juegos que salen en pc, en lo que se notará mejoría es cuando se estandarice el uso de los nuevos motores gráficos como el UE4 que están preparados para DX12, se notará mejoraría y también se verán las deficiencias.

    • CЯΔ§H☆SρΘ†

      siempre paso y va a pasar eso, siempre necesitaras cambiar el hardware. No es como el papel con el que te limpias el humilde trasero, lo tiras y compras otro extra suave, las cosas van quedando viejas pero nunca falta el cospiranoico que piensa que las empresas nos quieren lavar los bolsillos, programan con malas intenciones y tienes que jugar obligado en calidad “ultra” para tener un buen orgasmo de juego, eso depende de ti, yo hace 3 años que estoy usando mi PC y es compatible con todo el software actual y ahora me va a rendir unos 2 años mas, uno lo actualiza a gusto, que tu seas un descerebrado que tiene que jugar a todos los juegos actuales a 4k y 100 fps, que pena, porque creo que nisiquiera eres un diseñador grafico que necesite tanta potencia… juega en calidad media no se te van a caer los ojos, el que quiere jugar lo juega como puede

      • EpsylonRad

        Tu sinceridad brutal es buena y real en varios puntos. Solo no concuerdo en eso de que es paranoia querer lavarnos los bolsillos.

        Claro es el problema de memoria de las 970, El Humo Maxwell vendiendo el mismo GM200 para 3 graficas distintas y arrancándote la cabeza en la diferencia, con un rendimiento FP64 paupérrimo.

        Y por ultimo, la grandiosa M$ que nos ha hecho jugar con la mitad de la potencia que pagamos solo porque a ellos les erá un negocio redondito con Intel y Nvidia tener que usar CPU media-tope porque sino la gráfica no rendía…