Es por esto que los juegos de PC están mal optimizados
Hace unos años DirectX 12 se vendió como la panacea para aumentar el rendimiento de los juegos para Windows y Xbox. ¿La realidad? El tiempo ha puesto las cosas en su sitio y muchos desarrolladores siguen utilizando DirectX 11 en los juegos y las últimas versiones de la popular API gráfica de Microsoft se han convertido en el principal problema que tienen los juegos de PC, sea el título que sea, y que también está afectando negativamente a Xbox.
Índice de contenidos
Contenidos de la entrada
¿Cuál es el problema de DirectX 12?
Para entender el problema que tiene la API de Microsoft hemos de romper el mito de que las API de bajo nivel, es decir, en las que la mayoría del trabajo lo ha de hacer el juego y, por tanto, gestionarlo el programador, son la mejor solución existente a día de hoy. Se trata de un pensamiento de los años 2000 donde casi todo se centraba en un solo núcleo para la gestión de la lista de pantalla y teníamos pocas unidades por procesador.
¿La solución con DirectX 12? Hacer que un trabajo que antes hacía el driver, con una sobrecarga, termine en manos de desarrolladores de videojuegos. Esto sobre el papel y explicado a personas que no tienen mucha idea del tema puede sonar muy bien, pero creedme, esto es el equivalente a que un cirujano cardiólogo opera de cataratas, desastre asegurado.
Más bien se puede decir que DirectX 12 ha sido un ahorro para los creadores de GPU al trasladar el trabajo que les tocaría hacer a ellos en lo que a los drivers se refiere a los que hacen los juegos. ¿El resultado? Un estancamiento general en cuanto a la evolución de los videojuegos de cara al rendimiento. Es decir, hemos entrado en retornos decrecientes, donde cada vez parece ser que es más difícil sacar provecho del nuevo hardware a nivel técnico y se le está echando la culpa a quienes realmente no la tienen.
Los escaladores al rescate
La situación es tal, que en la actualidad tenemos a escaladores como el DLSS de NVIDIA y el FSR de AMD que están ya siendo utilizados para paliar los problemas de rendimiento de los juegos. Es decir, se han vuelto mandatarios para que los juegos se puedan disfrutar en muchos casos a tasa de frames aceptables. Todo esto es un fiasco de DirectX 12 y su planteamiento como API de bajo nivel.
Y es que por los foros de todo el mundo y redes sociales se dijo que una vez los motores gráficos fuesen reconstruidos para las nuevas API, entonces veríamos un increíble aumento en el rendimiento, pero no ha ocurrido así. Y no se trata de un problema puntual, sino generalizado y, por tanto, sería hora de señalar al verdadero culpable, a DirectX 12. Es más, lo habitual antes era que la gestión de la memoria de vídeo la llevase el driver, sin embargo, ahora nos encontramos con que es usar DirectX 12 en los juegos y ver cómo de repente el uso de la memoria de la tarjeta gráfica se dispara a niveles estratosféricos.
Es decir, algo como el DLSS y el FSR que se diseñaron para paliar la falta de VRAM lo suficientemente rápida para los anchos de banda requeridos a resoluciones 4K se han convertido en una forma de paliar el desastre que es la API de Microsoft.
¿Cuál es la solución al problema?
Es muy simple, hacer que DirectX 12 continúe siendo multihilo y que aproveche uno de los hilos de ejecución o incluso núcleos enteros para gestionar todo aquello que se ha puesto en manos de los desarrolladores y que ha sido un enorme desastre. Otra opción sería mejorar los procesadores de comandos de las GPU para que sean mucho más eficientes, pero nos encontramos con casos como el de AMD donde todo termina en manos del driver y si encima viene Microsoft con su API y les quita trabajo, pues, ya me diréis.
No olvidemos que en pleno 2023 las CPU no son las de hace más de una década, tienen la potencia suficiente como para hacer más trabajo que hacían antaño sin despeinarse lo más mínimo y sin afectar negativamente en los videojuegos. El problema no está en el hardware, sino en que la maldita API no permite sacarle ventaja y de ahí que tengamos ordenadores con una diferencia de 5 años en procesadores, duplicando o incluso cuadriplicando el rendimiento y sin efecto alguno en la tasa de frames por segundo, incluso bajo la misma tarjeta gráfica.
Gracias por la explicación para los menos entendidos como yo en el tema , ahora me queda más claro porque no a los desarrolladores les cuesta cada vez más en un proyecto ambicioso , los juegos AA son los que está en peligro
Digo lo mismo que el compañero que a comentado, gracias por explicarlo para que lo entendamos mejor, aunque ahora me surgen varias duda, si se dijo que Directx 12 salió de Vulkan y a su vez de Mantle que la creo AMD ¿su intención era dar menos importancia al Driver y que cada desarrolladora lo usara a consecuencia (Mantle)? me refiero a AMD cuando lo creo.
Aunque entiendo que ahora es diferente y el grupo Khronos Group lo evoluciono al vulkan que ahora conocemos no? y viendo eso que dices que lastra el Directx 12 respecto al 11 donde en toda la generación de la Xbox one/PS4 casi ni se uso en pc, solo juegos contados y con rendimientos deficientes.
¿Cómo que no aprovecho Sony (y todos los miembros de kronos group ayudando o presionando) que con el éxito de PS4 y PS5 para hacer uso de vulkan como norma general o digno rival a la versión de Directx? ¿por que todos los exclusivos de PlayStation han salido con soporte de directx 11 y hasta 12?, entiendo que según el motor grafico o equipo de desarrollo alguno si hubiera salido con directx, pero si son juegos 100% exclusivos de play no se el afan de estar todo en directx.
Puede que sony no pierda nada en portar sus juegos a directx pero hace a este mas fuerte y estándar en la industria del videojuego y creo que eso perjudica mas que beneficie.
Ahora mismo el juego mas reciente que hay es Baldur gate 3 que tiene soporte para vulkan, y viendo videos de youtube no sale muy bien parado, casi siempre le supera por poco directx 11, aunque se agradece que hayan echo una versión al paralelo y casi sin perder tanto tiempo o rendimiento, cosa que imagino que lo harían para la versión de PS5 con el que va con un rendimiento algo mediocre o muy mejorable, con pantalla partida baja a 21 fps, no muy estable en el modo calidad, y por no decir el baile de FPS del modo rendimiento de 30 a 60 en muchas ocasiones.
PD: ¿hablaras de los recientes rumores o informacionces de la Switch 2 y su puesta en escena entre bambalinas?
Si es generalizado me sorprende que sigan con esas en vez de exigir un cambio o es que les viene bien a los vendedores de hardware que la gente pase por caja en vez de solucionar el software?
siguen igual, porque siguen vendiendo, el usuario tiene unas tragaderas como la entrada de metro de SOL, así que para que esforzarse?
te va mal? actualiza el sistema..
y lo peor es que la gente lo hace
Gracias por la entrada
Muy interesante, gracias.
gracias aprendi bastante
Para entender mejor estuve leyendo varios articulos de dx12 vs dx 11 y la solucion que mencionas es que dx12 siga haciendo lo mismo para lo que fue hecho (en parte) dividir toda la carga de la cpu entre todos sus nucleos, entonces que esta fallando? dx 12 al no poder gestionar el reparto entre todos los nucleos o el driver o el programador? hace dias estuve leyendo que el motor de starfield no aprovecha todos los nucleos de la cpu, entonces de quien es culpa?
[…] Esto supone que pese a que Metal es una API multihilo y de bajo nivel como DX12 y Vulkan, no carga sobre el controlador o la aplicación ciertas tareas, lo que no solo descarga a la CPU, sino también a los estresados […]