NoticiasSoftware

Todo lo que necesitas saber sobre DirectX 12 (Incluimos Benchmark)

Con la llegada de Windows 10 y como viene siendo habitual en Microsoft con cada sistema operativo, llega su última Api de gráficos que da pie a una nueva generación de tarjetas gráficas, y sobre todo de juegos. Directx12 es la nueva Api, ésta vez de bajo nivel y con un entorno nuevo, así como Vulkan – que ya hablaremos en otro momento – invadirán nuestro mundo.

Probablemente encontréis otros artículos técnicos, de gran valor pero difícil comprensión porque muchas cosas no llegaremos a entenderlas y la gente de a pié necesita saber de forma sencilla y clara, si su equipo o el que necesite actualizar, puede con éstas nuevas Apis. ¡Si te sientes así, este es tu sitio! No te lo pierdas!.

directx_12_hero.JPG.800x600_q96

¡Y llegó Directx 12!


Microsoft desde hace dos décadas, sacó Directx para tener un acercamiento al hardware para el entorno multimedia, más centrado en juegos o vídeo, y que en el a residen otro conjunto de instrucciones como Direct3D, Input, Sound, Music… pero ésta no va a ser una lección de historia asi que nos saltaremos ésta parte y daremos un salto en el tiempo, hasta ubicarnos al nuestro y explicar que es Dx12 (a partir de ahora así) y como nos va a afectar.

¿Por qué Dx12?


Como venía diciendo antes, tras la reciente llegada de Windows 10, Microsoft trajo consigo una nueva Api, anunciada en 2014 y que traería como principal novedad, un acercamiento mucho más real al hardware o como en la jerga del mundillo se le conoce como «close to metal», o lo que viene siendo como ejemplo, una dedicación hardware – software al igual que en las consolas, que aun con contar con menos rendimiento, éste está mucho mejor aprovechado, así que… ¿Por qué no llevar ésto al Pc?.

Microsoft prometió un aumento de rendimiento (no sólo de efectos como viene siendo habitual) y como se ha demostrado hasta la fecha con el motor de juegos Unity haciendo un renderizado de sombras con un considerable aumento de rendimiento, o las demostraciones de Oxide Games, optimizando así los equipos actuales de cuatro o más núcleos, configuraciones multi-gpu y un aprovechamiento mayor de las arquitecturas de GPU. Hasta aquí todo pinta genial, somos muchos los que contamos con procesadores de cuatro núcleos o más, como los i7 o FX de Amd pero… ¿Podremos disfrutarlo todos? Que necesitamos realmente?

¿Qué diferencias hay entre Dx12 y lo visto hasta la fecha?


DirectX-12-vs-11

En primer lugar hay que hablar de dos cosas importantes que se discuten mucho últimamente que son su «feature level» y el «tier» al que pertenecen. Como nos afecta ésto?

Con el fin de garantizar que Dx12 funcionase en una amplia gama de equipo, Microsoft y sus socios acordaron dividir en 3, los niveles de apoyo para el «resource-binding», es decir modelo de recursos, quedando así:

  • Tier 1: Intel Haswell, Broadwell y Nvidia Fermi.
  • Tier2: Nvidia Kepler, Maxwell 1.0 y Maxwell 2.0.
  • Tier3: AMD GCN 1.0, GCN 1.1 y GCN 1.2.

Cada nivel es el super-conjunto del anterior, es decir, el Tier 1 de hardware viene con las restricciones más fuertes sobre el modelo de recursos, y el Tierl 3 por el contrario no tiene limitaciones, mientras que el nivel 2 representan nivel intermedio de constricciones. Que fácil hubiera sido que hubiera sido al revés, verdad? Tier1 el que tiene todo, y así sucesivamente, pero no… Complicarnos la vida es su sino. Por tanto y resumiendo, el Tier3 de Amd es el que no tiene restricciones, el Tier2 el que tiene ciertas limitaciones y el Tier1 pues eso, el que más o mejor dicho el que tiene el soporte más «básico».

Últimamente se habla mucho en Internet si todas soportan todo (como las Maxwell) o si Amd soporta o no todas las características de Dx12 y cuando se dijo que si, se mal interpretó queriendo decir que no tiene limitación alguna en lo visto hasta ahora pero que muy distinto son las «feature level», y ahora vamos a ver como son las feature level y a que arquitecturas o tarjetas lo soportan… ¿Por qué no nos daría por la poesía eh?.

Continuando con el tema, además de los Tiers, Dx12 tiene diferentes «feature levels» es decir niveles de funcionamiento, y son cuatro hasta la fecha, que además cada uno tiene unas características diferentes y un hardware que necesite que las apoyen. Estos «feature levels» no tiene por qué estar ligados a los Tiers y tienen por así decirlo un papel más secundario que lo visto arriba que tienen las importantes y principales características de renderización.

Algunas de éstas «feature levels» no están cubiertas ni siquiera por el Tier3 más alto, asi que ésto lo convierte en una característica individual, siendo el hardware (la tarjeta gráfica en cuestión) el determinante en ésto.

Como sabemos que «feature levels» tiene cada hardware? Los identificamos así:

  • Feature Level 11 -> Nvidia Fermi, Kepler, Maxwell 1.0.
  • Feature Level 11.1 ->AMD GCN 1.0, Intel Haswell y Broadwell.
  • Feature Level 12.0 -> AMD GCN 1.1 y 1.2 GCN.
  • Feature Leve 12.1 ->  Nvidia Maxwell 2.0

Ya os hemos liado verdad? No es para menos, tenemos en la cabeza Tiers, Feature Leves y gráficas diferentes y ningún juego… Estupendo! ¿Cómo lo vemos? Muy sencillo, os vamos a enumerar primero que tarjetas corresponden a que arquitectura.

asus-gtx980ti-review07

– Nvidia Fermi: Todas las que llevan el chip al comienzo de su modelo, «GF», como GF117, 110, 100 y todas las de en medio que como bien sabéis y hablando de los más populares serían GT450, GTX460, 470, 560 y 580 entre otros.

– Nvidia Kepler: Al igual que las GF en este caso son denominadas GK, si es como pensar en «Gpu Kepler». No todas las series 600 o 700 de Nvidia lo son, hay algunas que son refritos de GF es decir de Fermi, por tanto conviene cerciorarse pero como ejemplo, os diremos que engloban entre otras a las populares GTX650, 660, 670, 680, 760, 770, 780 y Ti.

– Nvidia Maxwell y Maxwell 2.0: Aqui la lista es más corta, Maxwell 1.0 nació con la GTX750 y 750Ti que como veis pertenece a la serie 700 sin ser Kepler, y se identifican con GM107 y 108. En Maxwell 2.0 son menos las tarjetas que hay, partiendo de la nueva GTX950 y nos vamos de ésta a la 960, 970, 980 y Ti así como la Titan X y posteriores.

– AMD GCN 1.0: Siendo un pòco más fácil de saber cuales afecta, la serie 7000 de AMD desde la 7350 en adelante hasta la 7990 son arquitectura GCN 1.0 (menos la 7790 que es 1.1). Hay que tener cuidado, pues en la siguiente serie como las R3, R7 y R9 hay «intrusas» o mejor dicho refritos, que poseen ésta arquitectura, como la 270, 280X etc. Son basados en el chip Tahiti, Pitcairn, Curacao, Cape Verde,…

– AMD GCN 1.1 y 1.2: Estas las soportan la siguiente generación que es más moderna, como la R7 260 y 260X que son 1.1, la 7790, y las basadas en Hawaii como la 290, 290X y Apus Kaveri, que están basadas en la arquitectura Sea Islands. Las 1.2 son más escasas que tienen como base la arquitectura Volcanic Islands, como la 285 ó 380, y las nuevas Fury basadas en Fiji. La serie 300 muchas de ellas son 1.0 y 1.1, conviene tener cuidado no confundir, como por ejemplo la 390 y 390x que son 1.1 o la 370 que es 1.0. Mejor no podrían haberlo hecho (sarcasm).

Bien, ya tenemos englobadas las tarjetas y posicionadas con su específico soporte pero, en ¿Qué mejora realmente Dx12?, Vamos a resumirlo de forma clara y sencilla.

  • Reducir el cuello de botella en las cpus, característica que en Dx11 está realmente saturado.
  • Aumenta el escalado al tener mayor número de núcleos en el CPU, por fin.
  • Mayor control para el desarrollador.
  • Eficiencia de la Api similar a una consola, es decir, que tendrán un control más amplio y cercano hardware – software (juegos).
  • Todas las funcionalidades de Dx11 las conserva.

Esto es digamos la principal característica o la base de Dx12, por tanto, si tenemos una tarjeta que no soporta el 100& de las feature leves, podremos usar Dx12? Si. Pero… nada de peros, Si es Si. Las diferencias las encontraremos cuando a medida que pase el tiempo lleguen juegos que soporten dichas tarjetas, mientras tanto, puede ser emulado por software. Lo más seguro y plausible es que los juegos que lleguen éste 2015 y el siguiente 2016 se basen y ciñan a la base de Dx12 ya que muchos de ellos serán parches post lanzamiento siendo portados a la nueva Api, similar a lo vivido con Battlefield 4 y Mantle, que salió unos meses después su soporte.

¿Cómo medimos la diferencia real entre Dx11 y 12?


Se que muchos podéis desear que se hable de cada «feature level» pero dado que aun no hay juegos que las describan ni detalles de que juego va a implementar que, nos vamos a centrar en las principales mejoras que son la enorme liberación del cuello de botella que puede general a la gpu, el cpu, que es donde más está trabajando Microsoft, para hacerlo más flexible y aprovechar tanto el procesador como la gráfica en su totalidad. Además, así es como es este artículo, un vistazo rápido y sencillo para prepararnos.

Para ello hemos elaborado una tabla con el nuevo juego (aun en estado pre-beta) Ashes of the Singularity para ver que beneficio obtenemos al pasar de Directx 11 a 12, y el 3DMark Vantage el número de drawcalls o «llamadas» que puede realizar el cpu a la tarjeta gráfica.

Ashes3

Pese a que se está criticando mucho (y no es para menos pero no vamos a entrar en morbo), me parece un buen benchmark ya que la puesta en escena de objetos, naves, trazadoras, sonido, efectos gráficos en pantalla es muy elevada, y es perfecto para cuantificar la mejora en Fps que es lo que al fin y al cabo nos interesa. Hemos usado la R9 390x de nuestro equipo y un 4690K @ 4400Mhz bajo Windows 10 evidentemente.

Este es el bench del apartado que engloba todo el Pc, en su mayoría uso de Gpu.

ashes_system

Y finalmente el CPU test, para ver cómo libera la Api el rendimiento del procesador.

ashes_cpu

Como vemos la mejora de Fps es drástica, y no solo eso sino como decimos, la calidad general al meter más unidades en pantalla, efectos y otras cosas. Es la única prueba que tenemos tangible pero conviene cogerla con pinzas ya que puede no resultar así en todos los juegos, ya que cada uno tiene diferencias en su estilo, si es arcade, rol, shooter etc, pero si las mejoras van por éste camino, estaremos delante de uno de los mayores cambios de los últimos años.

Ahora, vamos a ver como afectan las llamadas del cpu al gpu, basándonos en el test que trae consigo 3DMark, con la misma gráfica y equipo.

20150914111743

Si, tal y como vemos no tiene parangón el número de llamadas que puede ejecutar Dx12 frente a Dx11. Pero, ¿Qué son las drawcalls? Como explicación sencilla os diré que son el total de «mallas» dibujadas después del proceso de batching, y éste es el proceso donde el motor combina el renderizado de diferentes objetos en un único drawcall para intentar evitar sobrecargar el cpu, y tal como vemos en la gráfica, la diferencia es pasmosa.

Bueno y ahora salgamos por fin de tecnicismos y centrémonos en lo que nos importa, los juegos.

¿Qué tarjeta me compro?


Si aun no tienes ninguna tarjeta gráfica compatible con estas características o simplemente quieres actualizar a algo mejor, nosotros os recomendamos que compréis lo que recomendamos siempre, calidad / precio. Ni todos los juegos que van a venir son Dx12 y en su mayoría lo que hay hasta la fecha son Dx9 u 11, por tanto conviene tener un renglón de precio fijado y partir de esa base.

amd-nvidia

Siempre hay alternativas  de menos de 200€ como la Gtx 950 o AMD R7 370, por encima de éstas las GTX960 y AMD R9 380, y así sucesivamente, siempre en tener algo equilibrado y acorde a nuestro equipo y necesidades. Aun es muy temprano bajo mi criterio el comprar pensando en los feature levels o en si necesito X o Y en base a un juego ya que aun no hay nada claro ni explicado salvo en lo que nos hemos concentrado que es a grosso modo la liberación de la cpu y la mejora de fps pasando de una api a otra por decirlo de la forma más sencillo.

Teniendo en cuenta ésto, todas las gpus del mercado actual y probablemente muchos de vosotros  tiene / tenéis  un soporte base para Dx12 que es la principal característica, y por tanto la que nos interesa hasta ver los futuros juegos.

¿Y qué juegos nos llegan?


gears_of_war-xbo
Gear of War Ultimate

En lo que nos queda de 2015 van a ser pocos los juegos que van a soportar Directx12 de buenas a primeras y el primero de todos (sin contar el Ashes ya que es pre-beta) es el Fable Legends, que saldrá para Pc y Xbox One en octubre.

Según las fuentes que corretean por internet las mejoras de Dx11 a 12 son fuertes, dando tasas de Fps en Dx11 de 43fps mientras que en Dx12 se nos va a los 53Fps, una mejora más que digna para un comienzo donde además, lo mínimos mejoran en mayor proporción que el promedio.

Por otro lado para finales de año y concretamente en diciembre nos llegará el nuevo Hitman.

Donde nos interesa realmente el tema es 2016 donde la lista se alarga, donde recibirán un parche el Ark Survival Evolved el cual está ganando adeptos cada semana que pasa, en febrero de 2016 sale el nuevo Deus Ex Manking Divided, Sea of Thieves, Star Citizen, Gear of War Ultimate, Day Z, Arma 3 y aunque aun no se sabe que juego será el primero, DICE, creador de juegos como Battlefield, ya tiene su motor Frostbite 3 corriendo sobre Dx12, aunque yo apostaría a que será Battlefront, dada la expectación que está generando y siendo un título multijugador, quizás donde más podría aprovecharse toda esta parafernalia.

En fin, creo que no me dejo nada en el tintero y ahora estéis un poco más tranquilos, asi que nos despedimos aquí y pronto tendréis un artículo sobre Vulkan, la nueva Api de los padres de OpenGL y perteneciente al grupo Kronos, que viene a ser digamos la «competencia» de Dx12 como así lo ha sido estos largos años y como brévemente fue Mantle, la que pensamos que empezó a poner nerviosos a todos.

Os dejamos con unas imágenes de los títulos mencionados atrás y nos despedimos!.

Ivan Moreno Mendoza

Músico aficionado, jugador empedernido, estudiante de programación web ... Persona que adora la informática y el hardware principalmente, y con ganas de seguir aprendiendo toda mi vida!.
Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar Política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en [email protected]
Botón volver arriba