El Ray Tracing en Forza MotorSport, ¿limitado por culpa de AMD?
Decir que hay downgrade en Forza MotorSport, es decir, que la presentación visual del juego es peor en el juego final que cuando se presentó por primera vez, pues no cotiza. Sin embargo, la culpa no es de Turn 10, y tampoco de Microsoft, sino más bien de tener que lidiar con una GPU con limitaciones claras en cuanto al Ray Tracing y otras funcionalidades gráficas. Claro está, que decir esto, para muchos puede ser chocante, especialmente cuando AMD lleva años con un marketing a la contra del trazado de rayos.
Índice de contenidos
¿Downgrade en Forza MotorSport? Pues sí, es un hecho
Antes de nada, cabe avisar que Gran Turismo 7 es mucho peor gracias a sus políticas de micropagos integradas en el juego, y que en el caso que nos ocupa vamos a hablar del downgrade Forza MotorSport desde la perspectiva propia de la evolución gráfica del juego respecto a las primeras presentaciones y la relación con tener un hardware limitado en cuanto a Ray Tracing, producto de ciertas decisiones de AMD.
Curiosamente, a este hecho apunta un vídeo de Digital Foundry, en la que la parte en la hablan de Forza merece destacarse, sin embargo, es en estos puntos donde una imagen vale más que mil palabras y tenemos unos buenos ejemplos para verle el tijeretazo, en especial en lo que a geometría de escena y trazado de rayos se refiere.
En todo caso, es un error atacar a Turn 10, quienes se han enfrentado al mismo problema que Polyphony Digital a la hora de hacer Gran Turismo. Las diferencias técnicas entre PlayStation y Xbox esta generación son menores de lo esperado y esta vez no hablamos de un juego hecho para PS5 y mal portado a Xbox, sino de un exclusivo.
El talón de Aquiles de RDNA 2 en XSS/XSX y PS5: el Ray Tracing
Para entender el downgrade en Forza MotorSport, hemos de entender las limitaciones de base del hardware de XSX y XSS producto de funestas decisiones. Cuando se reveló que AMD iba a dar soporte al Ray Tracing, fue a través de una patente, donde se habló de un sistema en el que decidían que la unidad encargada de acelerar al Ray Tracing no tendría soporte para recorrer el árbol BVH por sí mismo, dejando todo el trabajo a las unidades SIMD de las Compute Units, ya saturadas con todo tipo de shaders a calcular. Y no lo digo yo, la imagen de arriba corresponde a la patente de la Ray Tracing Unit para RDNA 2.
¿El resultado? En PC encontrarse una diferencia de rendimiento tan grande en trazado de rayos que las GPU de NVIDIA con el mismo rendimiento con gráficos estándar y sin dicha mejora a la hora de aplicarla llegaban a duplicar e incluso triplicar el rendimiento. Tal fue la cagada, que la empresa empezó a usar técnicas de astroturfing en foros de hardware y comentarios de páginas web para repartir la idea de que el Ray Tracing no eran tan importante. Todo ello para hacer boicot a su implementación, en vez de hacer una de calidad.
Es más, las consolas se ven atrapadas por ello, al verse limitadas en ese aspecto por el paupérrimo hardware de RDNA 2 en Ray Tracing. Lo cual se ha convertido en la punta de lanza en los últimos años. «¿Quién quiere Ray Tracing?». Pues bien, el downgrade Forza MotorSport es el ejemplo claro de las consecuencias de capar el Ray Tracing.
AMD lo reconoció cuando presentó RDNA 3
Qué AMD le había quitado la capacidad de recorrer el árbol BVH a las Ray Acceleration Unit es un hecho, no lo digo lo dijo la propia creadora de la arquitectura en la presentación de la siguiente generación de la misma. Ya sabéis, dato mata a relato. Es decir, la gente de Turn 10, para poder implementar el Ray Tracing en Xbox Series ha tenido que hacerlo limitándolo a los coches para mantener los 60 FPS o recortarlo a 30 FPS, y esto no es otra cosa que el resultado que la GPU de la consola no está bien equipada, por una mala decisión de AMD que fue más bien política que técnica.
Es decir, si hubiesen colocado una Ray Acceleration Unit decente y no la basura que tienen las consolas de la actual generación, entonces no hubiésemos visto downgrade en Forza MotorSport, y creedme, no les hubiese costado nada en el presupuesto hacer una decente, pero no, lo importante era llevar su estúpida guerra contra NVIDIA a las consolas.
Explicación para torpes del problema
Uno de los mayores problemas que tiene el Ray Tracing es su carga computacional, es decir, la cantidad de potencia que necesita para ejecutarse, es por ello que acelerar el recorrido del árbol BVH es fundamental, ya que le permite a la GPU descartar intersecciones en píxeles innecesarios en pantalla donde no hay geometría, aparte de eliminar todas las partes de la escena que no se encuentran en la trayectoria de cada uno de los rayos.
Se trata, por tanto, de una de las partes clave para ver si los objetos son colisionados por cada rayo de luz en la escena. Y aquí se ha de aclarar que RDNA 2 sí que hace esto, pero carece de una unidad especializada para ello. La ventaja de este tipo de unidades es que hacen tareas concretas de forma mucho más eficiente y rápida, ocupando poco espacio en el chip y sobre todo liberando a las unidades SIMD para que puedan dedicarse a otras cosas, que las pobres ya están lo suficientemente ocupadas.
Construcción del árbol BVH
El primero paso es la construcción del árbol BVH a través de información de la escena, posición de la geometría. Para lo cual esta se divide en cajas que rodean grupos de objetos que rodean grupos de objetos. Dentro de dichas cajas se van creando subcajas, hasta que se llega a lo más simple de la geometría que es un simple polígono. Dichas cajas se organizan en forma de árbol binario donde cada nodo representa una caja que contiene sus nodos y cajas.
A día de hoy esto lo hace la CPU, al no existir una unidad especializada en ello. Se trata un trabajo totalmente recursivo, pero por el momento solo las GPU más avanzadas de la marca PowerVR de Imagination tienen dicha función.
Recorrido del árbol BVH
Cuando un rayo de luz ingresa en la escena, el proceso de recorrido del BVH comienza desde la raíz del árbol. El rayo se evalúa para determinar si hay intersección con la caja que representa el nodo actual del árbol. En el caso de que el rayo no haga intersección, lo que se hace es elegir uno de los dos nodos de la caja actual y se repite el proceso de evaluación para ese nodo hijo, esto se hará hasta que se llegue al último nodo, es decir, lo que sería la hoja del árbol.
Sí la intersección en la hoja es positiva, entonces, se registra la información de intersección y se vuelve a los nodos superiores para probar otros caminos. Con ello se termina sabiendo qué objetos en escena se ven afectados por cada rayo de luz, y es mucho más eficiente que ir examinando píxel por píxel e ir errando el tiro mientras se gastan recursos.
Este proceso en las consolas actuales es llevado a cabo por la unidades SIMD, haciendo que la mejora en la tasa de cálculo de una generación a otra se vea afectada y provocando que haya
¿Por qué es malo que se encargue de ello las unidades SIMD de la GPU?
Una vez que hemos visto el proceso, hemos de partir de que una unidad SIMD son un conjunto de ALU simétricas, realizando la misma instrucción, pero cada una encargándose de un dato distinto y apuntando a un registro propio. A veces ocurre, especialmente en una GPU con unidades tan anchas de este tipo, que no se llenan todos los huecos, lo que provoca una infrautilización.
- Los árboles binarios no siempre se prestan fácilmente a la paralelización. En un árbol binario, los nodos se dividen en dos ramas, y esto puede limitar la capacidad de procesar múltiples nodos a la vez, especialmente en niveles profundos del árbol.
- Las GPU funcionan mejor con estructuras de datos que se pueden dividir en pequeños bloques que se pueden procesar de manera independiente. Los árboles binarios tienden a tener una estructura jerárquica que puede hacer que sea más difícil para una GPU dividir el trabajo de manera eficiente.
- El acceso a la memoria global de la GPU puede ser una fuente de cuellos de botella al recorrer un árbol binario, ya que acceder a nodos alejados en el árbol puede ocasionar retardos en la lectura de memoria. De ahí a que en PC se haya aumentado considerablemente la caché de último nivel de las GPU en las últimas generaciones.
Es decir, es mucho mejor usar una unidad especializada, a estas alturas supongo que el punto queda probado y las causas del downgrade a Forza MotorSport son claras.
crees posible que el bajo o nulo rendimiento de AMD en raytracing, haga que la proxima generacion de xbox cuente con NVIDIA?
como lo expuse en otro post antes,
xbox next series S con gpu amd
xbox next series X con gpu nvidia
No creo que hagan 2 consolas con diferente compañía de hardware (en GPU), mas que nada por que se dispara el coste a la hora de firmar los contratos de comprar por lotes o millones los chips de ellas, hacer 2 kits de desarrollo diferente, sofware etc,
Les saldría mas a cuenta hacer como ahora con la Series S ,recortar la GPU de la hermana mayor y así se ahorran costes de desarrollo, tanto para software, como hardware para los kits de desarrollo.
En mi opinión personal espero y deseo que la próxima Xbox sea con una GPU de Nvidia, ya que están mas avanzados en IA, consumo y tecnologías que AMD, entiendo que se pague mas caro su hardware y les salga mas barato ir a por AMD para cerrar el trato por tener un todo en 1 CPU y GPU(APU), pero como dice Urian este Directx que usa Series X le abre la puerta a que sea compatible con un hardware de Nvidia sin tanta complicación comparándolo con otros años en el cambio de hardware de consola, y si tiran por fuerza bruta correr los juegos de One y 360, ya que para ese tiempo la CPU y GPU deberían hacerlo de sobra, se limita por software los fps correspondientes y punto.
Así pueden marcar la diferencia con una PS6 de Full AMD, me veo mejor preparada una Xbox GPU Nvidia para un posible DLSS 4.0 o ya seguro que 5.0 que hasta podría estrenarse con esa consola meses antes de las tarjetas graficas de turno y tener la sensación de tecnología exclusiva por un tiempo hasta la salida de la( Series 6000 RTX o7000RTX¿?) que el FSR 4 que tengan en su tiempo AMD pero con mas calidad y rendimiento en Ray Tracing por parte de los de Nvidia, es mas, ahora con todos los juegos que salen en Game Pass en Geforce now les sale mejor a futuro que todo lo que vaya a la futura Xcloud tener una GPU Nvidia, ya que esta mejor preparada para el Cloud gaming. asi hasta con el desarrollo de hacer el juego en Xbox next gen con GPU Nvidia te sirve para esa consola, todos los de PC con grafica nvidia (recuerdo la gran cuota que tienen en PC) y su servicio Geforce now ya que usarían el mismo hardware.
Es que ya con lo que expones Urian en este articulo sobre forza, hubiera habido mas diferenciasignificativa si Microsoft hubiera sacado la Series X con una Nvidia de GPU con la que si no me equivoco hubiera sido con AMPERE la series 3000 rtx no se equivalente entre 3060 ti o 3070 con DLSS 2.0 de lanzamiento, o mejorando con el tiempo hasta tener 3.0, mejor ray tracing y a saber si apretando los tensor core hubiera sido activable el Frame Genertaion y ya si que los que comparan fps y texturas le darian algo y seria mas clara la ventaja de Series X con respecto a Playstation 5, que por lo menos tendria mas sentido al comparar GPUs con arquitectura diferentes que lo que ocurre ahora.
[…] limitación importante existente en las consolas actuales. Os recomiendo leer mi artículo sobre el downgrade de Forza MotorSport, donde si bien es un juego exclusivo de Xbox, este se ve afectado por las mismas limitaciones que […]
[…] Si no queremos que un objeto sea afectado o no por un efecto especial en la escena podemos marcarlo usando su identificación del ID Buffer. Esto es clave a día de hoy para el Ray Tracing, el cual puede ser selectivo, como ocurre en el caso de Forza MotorSport. […]
[…] Sony apostará por mejorar el Ray Tracing en la versión mejorada de su consola. En especial por el limitado trazado de rayos en RDNA 2, el cual ha afectado a ambas consolas de nueva […]
[…] en las consolas de videojuegos, y es que recordemos que tanto PS5 como Xbox Series vienen con el Ray Tracing capado de serie por culpa de las decisiones técnicas de AMD para quitarle importancia al trazado de […]