[Hilo Oficial] La revolución de las APIs gráficas (DX12 y Vulkan)

1, 2, 3, 4, 58
Conforme se acerque el lanzamiento de DX12 y Vulkan van a ir surgiendo cada vez más noticias y benchmarks. Así que creo que lo mejor es unificarlo todo en un mismo hilo, que ahora mismo está la cosa bastante desperdigada.

Estaba dudando si hacerlo en hardware o en general, pero al final lo hago aquí porque la compatibilidad del hardware es parte esencial, así como los feature levels de cada arquitectura.
Entiendo entonces que mi GTX 660 será compatible con DX12 como se esperaba pero que me perderé características de DX12 que sí soporta por ejemplo la GTX 960, ¿verdad?

P.D: Muy buen post, por cierto. ;)
Efectivamente, tu GTX 660 será compatible con DX12 y se beneficiará exactamente igual que la 960 en cosas que compartan. Por ejemplo el benchmark de 3DMark que ha salido hace unos días y que simplemente demuestra la eliminación del cuello de botella que había en el driver de DX11.

Para cosas que utilicen características de feature level superiores, como por ejemplo la VXGI de NVIDIA(o cualquier otro sistema de iluminación basado en voxels que funcione igual) que utiliza ROVs y rasterización conservativa, tendrán que ser emuladas vía software, suponiendo una penalización bastante grande en el rendimiento, y seguramente lo mejor sea simplemente desactivarlas.
josemurcia escribió:Efectivamente, tu GTX 660 será compatible con DX12 y se beneficiará exactamente igual que la 960 en cosas que compartan. Por ejemplo el benchmark de 3DMark que ha salido hace unos días y que simplemente demuestra la eliminación del cuello de botella que había en el driver de DX11.

Para cosas que utilicen características de feature level superiores, como por ejemplo la VXGI de NVIDIA(o cualquier otro sistema de iluminación basado en voxels que funcione igual) que utiliza ROVs y rasterización conservativa, tendrán que ser emuladas vía software, suponiendo una penalización bastante grande en el rendimiento, y seguramente lo mejor sea simplemente desactivarlas.

En el segundo parrafo está la clave.

Si queremos sacarle partido de verdad toca actualizar :(
Pero esto es como siempre, no se le empezará a sacar partido a los nuevos feature levels hasta pasados 2-3 años cuando el parque de GPUs con ese feature level aumente.
Ojala al mejorar los drawcalls en dx12 se les saque el jugo a las r9 290 /x, por que potencia tienen...
Pasaría más información para el post principal pero va a quedar demasiado largo sino.

Algo que aportar sobre los tiers..

http://i.imgur.com/2TtU0TQ.png

En la imagen anterior vemos que el Resource Binding Tier no coincide en el caso de la GTX 660 (que efectivamente es Tier 2 y no Tier 1).

Acá tenemos lo que nos devuelve una 290x:

https://forum.beyond3d.com/attachments/ ... s-png.614/

Tier 3 (Resource Binding), pero veamos que no soporta Tiled Resources que si lo soporta en el retorno de dxcapsviewer.

Si quieren esta noche (dentro de 5 horas) cuando este desocupado les informo sobre los retornos de mi GTX 980.

Saludos.
Lo mas importante, comenzemos a mandar MP de peticion a los moderadores para que lo deje como hilo fijo. Enviados mis MPs y espero los demas se unan a la peticion.
Mindtaker escribió:Pasaría más información para el post principal pero va a quedar demasiado largo sino.

Algo que aportar sobre los tiers..

http://i.imgur.com/2TtU0TQ.png

En la imagen anterior vemos que el Resource Binding Tier no coincide en el caso de la GTX 660 (que efectivamente es Tier 2 y no Tier 1).

Acá tenemos lo que nos devuelve una 290x:

https://forum.beyond3d.com/attachments/ ... s-png.614/

Tier 3 (Resource Binding), pero veamos que no soporta Tiled Resources que si lo soporta en el retorno de dxcapsviewer.

Si quieren esta noche (dentro de 5 horas) cuando este desocupado les informo sobre los retornos de mi GTX 980.

Saludos.

Por algún motivo el ID3D12Device parece que no devuelve los valores correctamente, no he querido ni nombrarlo ya que lo que devuelve el DXCapsViewer parece más coherente. Si en un futuro resulta que lo que devuelve el DXCapsViewer es lo erróneo se modificará la tabla.
Hilo MUY INTERESANTE.
La verdad es que el 3er cuarto de año vamos a flipar en colores.
Ahí será el salto gordo en PC Gaming.
Si he entendido bien significa que mi GTX970 será completamente compatible con dtx12 en todo?
adriano_99 escribió:Si he entendido bien significa que mi GTX970 será completamente compatible con dtx12 en todo?

Hasta que se presente un feature level superior si.

PD: He añadido un par de resultados al primer post.
Lo marco como fijo, ya que es un hilo muy interesante y si logramos unificar la información en un mismo hilo un diez para todos ;)

Eso sí, votaría por volcar la información en wiki para que pueda ser ampliada por todos.
No lo he hecho wiki todavía porque no quiero cagarla con el título [+risas]

Proponed alguno y la hago.
josemurcia escribió:No lo he hecho wiki todavía porque no quiero cagarla con el título [+risas]

Proponed alguno y la hago.


El nombre de la wiki es lo de menos, pero de nombre le puedes poner DX12 y Vulkan, con eso sobra.
Se confirma que hice bien optando por la GTX 960, tendré soporte total de DX12 en Windows 10 !
Creeis que volverán aquellos tiempos de pc en los que en las opciones te dejaba elegir direct 3d o opengl pero ahora con dx y vulkan? Quiero decir, veis fáctible que los desarrolladores trabajen vulkan para windows?
Si trabajan con Vulkan en Windows no tiene sentido que usen DX12. Supongo que elegirán uno de los 2.
Excelente, ya respondieron a mi peticion de hacerlo hilo fijo.

ELwendo escribió:
josemurcia escribió:No lo he hecho wiki todavía porque no quiero cagarla con el título [+risas]

Proponed alguno y la hago.


El nombre de la wiki es lo de menos, pero de nombre le puedes poner DX12 y Vulkan, con eso sobra.


De hecho, primera sugerencia, si vamos hablar de la API grafica, sera llamarla por su nombre: DIRECT3D12 y VULKAN[/b], recordemos que directx es el nombre del paquete de las distintas APIs [de sonido, de i/o, de computo heterogenero {dcompute}, graficas {dshow, d3d, dxgi, d2d}, etc.].

Que si bien es cierto, que microsoft esta usando indiscriminadamente a D3D12 como DX12 [violando sus propias reglas con ello], nosotros, si es aque realmente deseamos informar a las personas sobre sus ventajas, debemos aclarar y llamar por ello correctamente a esta API.

Porque no estamos hablando de DirectCompute12, o Xinput, DSound, dshow, d2d, etc. , sino que estamos hablando especificamente de la API grafica 3D.
WiKi añadida, la cree ayer al final.

Llevo muchos años sin tocar una wiki y ya no me acuerdo como iba la cosa, así que toda colaboración para agrupar, organizar, esconder imágenes, etc se agradece xD.
Felicidades por el post, gracias y god job!!

Con esto de DX12 miedo me da irme a las futuras 300 de AMD, el soporte y la buena optimización me da a mi que serán la clave.
¿Qué diferencia hay entre OpenGL y Vulkan?
No tienen nada que ver.

Vulkan corta por completo la compatibilidad con OpenGL y se planta como una nueva API que hace las cosas de manera radicalmente distinta.

Vulkan es Mantle, o usa Mantle como base, literalmente.
Bueno más bien la pregunta es. ¿Que aporta Vulkan que OpenGL no tenga?
Imagen

Para una información más detallada aquí tienes las diapositivas de la presentación de Valve en la GDC:

http://media.steampowered.com/apps/valv ... Vulkan.pdf

EDIT: Estas 2 en concreto muestran bien la diferencia:

Imagen
Imagen
Ese último diagrama de vulkan me ha dado que pensar sobre lo que se pudo ver en los test que se han estado haciendo a DX12 hasta ahora donde se veía ganancia hasta 6 cores, pero no más allá de 6 puesto que usando 8 los resultados eran practicamente iguales.
Y que pasa con OpenGL 5.0 ¿?¿?

Se supone que eso que llamais revolucion (que no es mas que Mantle adaptado) tambien lo integrara OpenGL 5.0 (lo de la eliminacion del cuello de botella de solo usar 1 core).

Amd saco Mantle... Nadie va a usar Mantle, pero la esencia fue plasmada en DX12, OpenGL 5.0 y al parecer Vulkan (el cual desconocia).

Pero no veo motivos para dejar de lado a opengl, que hace DX12 mas revolucionario que opengl 5 ¿?¿?
Y de vulkan ni hablemos que esta en desarrollo alpha y solo para intel parece ser...
OpenGL 5.0 va a seguir en la misma linea que OpenGL actual, por algo el grupo Khronos ha sacado Vulkan.

Vulkan es lo que se rumoreaba que iba a ser OpenGL 5.0, pero es tan diferente e implicaría tal ruptura, además de no ser adecuado para todos los usos(OpenGL se utiliza para muchas otras cosas que simplemente no requieren optimizar tanto y es más fácil de usar), que han decidido mantener las 2 APIs.

Mantle es Vulkan. AMD "donó" la especificación de Mantle al grupo Khronos para que partieran de ahí y no tuvieran que empezar desde 0.
hilo_khronos-presenta-vulkan-antes-glnext-opengl-next_2080654

En una pagina de desarrolladores han abierto un tema ptreguntandio a su comunidad, ¿Que opinan de las nuevas APIs?, que incluye a Vulkan, y de este, parece que las herramientas de desarrollo y depuracion seran mejores que sus generaciones anteriores, y creo este es un buen punto para iniciar e incentivar a que se use esta API.

http://www.gamedev.net/topic/666419-wha ... try5215019

Seabolt escribió:What are your opinions on DX12/Vulkan/Mantle?

Posted 06 March 2015

I'm pretty torn on what to think about it. On one hand being able to write the implementations for a lot of the resource management and command processing allows for a lot of gains, and for a much better management of the rendering across a lot of hardware. Also all the threading support is going to be fantastic.

But on the other hand, accepting that burden will vastly increase the cost to maintain a platform and the amount of time to fully port. I understand that a lot of it can be ported piece by piece, but it seems like the amount of time necessary to even meet the performance of, say, dx12 is on the order of man weeks.

I feel like to fully support these APIs I need to almost abandon the previous APIs support in my engine since the veil is so much thinner, otherwise I'll just end up adding the same amount of abstraction that DX11 does already, kind of defeating the point.

What are your opinions?



phantom escribió:
Depending on how you have designed things the time to port should be pretty low and, importantly, the per-API level of code for the new Vulkan and DX12 paths will be very thin as they look very much the same in terms of API space and functionality.

Older APIs might be a problem, however again this depends on your abstraction levels; if you have coupled to D3D11 or OpenGL's style of doing things too closely at the front end then yes, it'll cause you pain - if your abstraction was light enough then you could possibly treat D3D11 and OpenGL as if they are D3D12 and Vulkan from the outside and do the fiddling internally.

.. new APIs look much cleaner and much simpler to learn - a few tricky concepts are wrapped in them but they aren't that hard to deal with and, with Vulkan at least, it looks like you'll have solid debugging tools and layers built in to help.

..


Otra parte interesantes es la de 'promit' quien dice ser un ex miembro del equipo de desarrollo de los controladores de nvidia, y habla de que muchos de los programadores de juegos hacen claras violaciones de las reglas de las APIs, usan poco o nada el ambiente multihilo, el cual en las APIs anteriores poco o nada hacian bien, aparte de que el uso de multi-GPUs en todos los casos era deplorable. ambien habla de que las nuevas APIs, lo cual incluye Vulkan resuelve todo o casi todo lo erroneo y problematico del multi-gpu, multi-hilo, etc., pero seguira estadno presente lo de descuidos y violaciones a las reglas de el API usado.

Otro punto a desctacar es que algunos dicen que 'parece' que Vulkan permitira un trabajo mas sencillo al ser mas claro, menos complejo [o al menos mejor explicado y mas entendible los comandos] en la implementacion, lo cual tambien a nosotros como usuarios finales nos interesa, ya que de este optimismo por Vulkan derivara en mas proyectos de software que lo use.


hilo_valve-libera-primer-controlador-para-gnu-linux-para-vulkan_2081595

Valve si que esta apresurada a que ya funcione y se vea lo que pueda hacer la API grafica Vulkan, qu sera la base para juegos y otras actividades en SteamOS.

Valve libera el primer controlador con soporte a Vulkan en GNU/Linux, el controlador es para los GPUs integrados en los procesadores Intel, gracias al software libre en que se encuentran los controladores grafico de intel. Esperemos que esto sea adoptado rapidamente por AMD y nVidia para portar Vulkan en sus controladores para GNU/Linux.

Imagen

http://www.fudzilla.com/news/graphics/3 ... id=dlvr.it
Vamos a modo practico : creéis que esto de verdad va a dar un resultado en rendimiento los primeros años de vida con una gráfica 960,970,290,290X ( gráficas modernas y asequibles) ? PREGUNTO .
Tanto va aumentar el rendimiento en los juegos en un pc gaming?
Cuando va a estar disponible ?

Un saludo .
ipad escribió:Vamos a modo practico : creéis que esto de verdad va a dar un resultado en rendimiento los primeros años de vida con una gráfica 960,970,290,290X ( gráficas modernas y asequibles) ? PREGUNTO .
Tanto va aumentar el rendimiento en los juegos en un pc gaming?
Cuando va a estar disponible ?

Un saludo .

Hasta que no veamos una primera tanda de juegos puramente DX12 o Vulkan tampoco podemos asegurar nada.

DX12 se supone que estará finalizado para verano/otoño. Vulkan para final de año.
Vulkan a finales de año? ¿Te refieres a la API o a las implementaciones en cada SO?
josemurcia escribió:
ipad escribió:Vamos a modo practico : creéis que esto de verdad va a dar un resultado en rendimiento los primeros años de vida con una gráfica 960,970,290,290X ( gráficas modernas y asequibles) ? PREGUNTO .
Tanto va aumentar el rendimiento en los juegos en un pc gaming?
Cuando va a estar disponible ?

Un saludo .

Hasta que no veamos una primera tanda de juegos puramente DX12 o Vulkan tampoco podemos asegurar nada.

DX12 se supone que estará finalizado para verano/otoño. Vulkan para final de año.

Pero DX12 y Vulkan se supone que solo dará rendimiento a los juegos nuevos que vayan saliendo no ?
Bueno esperaremos a la primera oleada de juegos en su defecto , gracias por la respuesta .
Yo sólo espero que cuando estas apis estén funcionales y operativas y los juegos estén desarrollados aprovechando sus bondades haya algún juego desarrollado por y para pc, y no sólo juegos de consola mal optimizados. Que dicho sea de paso, puede ser bochornosa la falta de potencia de las consolas con respecto a pc si llegara a ocurrir, que no lo creo XD .
Yo llevo unas semanas con Windows 10 preview y una AMD 290 y cada vez van los juegos más finos.
Juego a UHD (4k) y puedo poner casi todo en alto, ultra (juegos nuevos).

En unas semanas (crucemos dedos) me llega su gemela 290 de Alemania espero que en perfecto estado y voy a flipar xD
SashaX escribió:Yo llevo unas semanas con Windows 10 preview y una AMD 290 y cada vez van los juegos más finos.
Juego a UHD (4k) y puedo poner casi todo en alto, ultra (juegos nuevos).

En unas semanas (crucemos dedos) me llega su gemela 290 de Alemania espero que en perfecto estado y voy a flipar xD


Joder macho, si ya juegas a 4K y en calidades alto-ultra ¿para que quieras otra 290? 0_o
ElHobbit escribió:
SashaX escribió:Yo llevo unas semanas con Windows 10 preview y una AMD 290 y cada vez van los juegos más finos.
Juego a UHD (4k) y puedo poner casi todo en alto, ultra (juegos nuevos).

En unas semanas (crucemos dedos) me llega su gemela 290 de Alemania espero que en perfecto estado y voy a flipar xD


Joder macho, si ya juegas a 4K y en calidades alto-ultra ¿para que quieras otra 290? 0_o


Hay juegos MUY exigentes.
SashaX escribió:
ElHobbit escribió:
SashaX escribió:Yo llevo unas semanas con Windows 10 preview y una AMD 290 y cada vez van los juegos más finos.
Juego a UHD (4k) y puedo poner casi todo en alto, ultra (juegos nuevos).

En unas semanas (crucemos dedos) me llega su gemela 290 de Alemania espero que en perfecto estado y voy a flipar xD


Joder macho, si ya juegas a 4K y en calidades alto-ultra ¿para que quieras otra 290? 0_o


Hay juegos MUY exigentes.


Me corto la cabeza a que si hubiesen placas base con 8 ranuras pci 3.0 alguno metería 8 290... o 8 gtx 980... y capaz que lo veo... :Ð
Aborigen_tf escribió:
Me corto la cabeza a que si hubiesen placas base con 8 ranuras pci 3.0 alguno metería 8 290... o 8 gtx 980... y capaz que lo veo... :Ð


Si le dieran soporte a 4 duales para tener octo-gpu..., pero ya la escalada de rendimiento se va reduciendo mucho y el consumo aumenta en exceso.

Imaginate un pc con 4 295x2 xD
....... y pondrían un motor de gasoil para alimentar la torre, y jugarían en pantallas de cine de 279 pulgadas [360º]
Dfx escribió:
Aborigen_tf escribió:
Me corto la cabeza a que si hubiesen placas base con 8 ranuras pci 3.0 alguno metería 8 290... o 8 gtx 980... y capaz que lo veo... :Ð


Si le dieran soporte a 4 duales para tener octo-gpu..., pero ya la escalada de rendimiento se va reduciendo mucho y el consumo aumenta en exceso.

Imaginate un pc con 4 295x2 xD

Para mantener 8 gráficas de gama alta en FULL necesitarías 2400W de potencia [mad]
Que leñeros XD XD XD
Si vierais los equipos que se gasta peña por otros foros.... [+risas] [+risas] [+risas]
amchacon escribió:
Dfx escribió:
Aborigen_tf escribió:
Me corto la cabeza a que si hubiesen placas base con 8 ranuras pci 3.0 alguno metería 8 290... o 8 gtx 980... y capaz que lo veo... :Ð


Si le dieran soporte a 4 duales para tener octo-gpu..., pero ya la escalada de rendimiento se va reduciendo mucho y el consumo aumenta en exceso.

Imaginate un pc con 4 295x2 xD

Para mantener 8 gráficas de gama alta en FULL necesitarías 2400W de potencia [mad]


Eso es más que lo que tiene alguna gente contratada para la luz de todo un piso [mad]
Quizás esas condiciones placas sirvan para minar [looco]
Por cierto. Ya se sabe algo del multigpu?
Parece que decían que se sumaria la memoria
paconan escribió:Quizás esas condiciones placas sirvan para minar [looco]
Por cierto. Ya se sabe algo del multigpu?
Parece que decían que se sumaria la memoria


Lo de sumar la memoria yo no lo veo tan fácil.... Es una cuestión física. Que no digo que se puedan distribuir los procesos de manera que no haya que cargar todo en memoria por duplicado, pero seguro que tiene un coste tremendo y nunca sería como que todas la/s gpu/s tengan acceso a toda la memoria.
Lo de sumar memoria no sirve para lo que estáis pensando, si ya la gente se queja del tema de los 3,5+0,5GB de las GTX 970 (y no me refiero al engaño en sí, sino a que gente asegura que esto será una gran lacra para el rendimiento), o cuando se usa el bus pci-e para cargar algunos datos, qué decir de gráficas que tendrían que acceder entre sí.... usando el pci-e. DOS VECES (no es así literalmente, pero para simplificar el procedimiento de lectura y envío de datos entre tarjetas necesariamente realizado por la cpu como intermediaria, con su RAM).

Lo que pasa es que la gente le gusta más el material de marketing que un lápiz a un tonto, y siempre caen en las mismas trampas.

Venga, a usar memoria compartida masivamente, a ver qué rendimiento podría mantener así dos tarjetas de 4+4 GB usando 8 GB conjuntos a base de mil transferencias de datos via pci-e entre ellas.

Rendimiento de puten madren, vamos.
wwwendigo escribió:Lo de sumar memoria no sirve para lo que estáis pensando, si ya la gente se queja del tema de los 3,5+0,5GB de las GTX 970 (y no me refiero al engaño en sí, sino a que gente asegura que esto será una gran lacra para el rendimiento), o cuando se usa el bus pci-e para cargar algunos datos, qué decir de gráficas que tendrían que acceder entre sí.... usando el pci-e. DOS VECES (no es así literalmente, pero para simplificar el procedimiento de lectura y envío de datos entre tarjetas necesariamente realizado por la cpu como intermediaria, con su RAM).

Lo que pasa es que la gente le gusta más el material de marketing que un lápiz a un tonto, y siempre caen en las mismas trampas.

Venga, a usar memoria compartida masivamente, a ver qué rendimiento podría mantener así dos tarjetas de 4+4 GB usando 8 GB conjuntos a base de mil transferencias de datos via pci-e entre ellas.

Rendimiento de puten madren, vamos.


Bueno, a ver que pasa, en 3 meses a mucho estirar sabremos como queda.
Yo, teniendo dual boot me he vuelto temporalmente a win7, que empezaba a tener fallos raros la 10049. En un mes o así me meto de nuevo a ver si hay "debuggeo" bueno.
Entonces no hay novedades en tema multigpu no?

Es que no se si quedarme con las tres GTX980 o venderlas definitivamente (ya he hecho algún amago, pero me cerraron el post aquí en EOL por vender tres productos iguales ¬_¬) y pillarme dos TitanX.

Solo espero que los juegos actuales que están rotos (AC unity, GTA V, etc) se actualicen a DX12 y aprovechen mucho más la CPU, que no se como es posible que un 5960X con OC alto pueda llegar a hacer bottleneck en configuraciones multigpu extremas.

Saludos ;)
Dos gráficas te van a dar menos problemas que 3. Pero Titan X... No lo hagas tío.
Esperate a la serie 300 de AMD a ver que tal salen, o de momento vende una 980 y tira con 2.
TiRaNog escribió:Entonces no hay novedades en tema multigpu no?

Si las hay, MSI confirma su soporte.

Better multi-GPU support

A few years ago, MSI was the world’s 1st motherboard maker to offer impressive Hydra Technology with the Big Bang Fuzion motherboard to achieve the installation of cross-vender GPUs in a single system.
Now, DirectX 12 can offer better support for multi-GPU configurations using graphics processors from NVIDIA and AMD due to obstacles like API limitations and unoptimized GPU architectures will be eliminated.

http://gaming.msi.com/article/msi-is-re ... -are-you-2
383 respuestas
1, 2, 3, 4, 58