Project Cars, DX12 y Xbox One

Esta vez no voy a hablar de Wii U sino las recientes declaraciones del jefe del estudio de desarrolo de Project Cars sobre una futura versión desarrollada en DX12, la cual tendría una mejora de hasta el 30-40% de aumento de rendimiento según él.

Captura de pantalla 2015-05-28 a las 10.58.59

Muchos han ido a los foros a hablar de una mejora de rendimiento en Xbox One, precisamente a lo que principalmente se refiere Ian Bell es a la versión de PC ya que sus declaraciones respecto a las ganancias en la versión de Xbox One son más modestas.

IanBell2

 

La traducción de lo que dice es importante para entender el contexto:

Dejadme que os lo aclare chicos.

El 30-40% es en PC donde la falta de la habilidad multihilo en DX11 nos ha restringido más.

Aunue en Xbox veremos una buena ganancia, el siguiente parche (muy pronto) añade un 5-7%.

Siguiendo de que nos estamos centrando en las areas que más impactan (el rendimiento) en los circuitos, lo que es principalmente optimización artistica.

Lo de arriba debería permitir acercarnos (me gustaría saber a que exactamente).

DX12 añadirá probablemente otro 7% o más para nosotros en Xbox.

y al hecho de que Project Cars es de esos juegos que por tener un motor gráfico multihilo se beneficia mucho de DX12 en PC al no utilizar una lista de comandos única sino varias. El problema viene cuando la API actual de Xbox One pese a no ser DX12 “Full” si que es un DX12 “Lite” al llaman DX11 “Mono”, de esto ya hable en su día en varias entradas sobre el tema y aparte que no lo digo yo solamente, lo dicen representantes de la propia Microsoft.

Esto es algo que los desarrolladores sabían desde primavera del año pasado, información que se encontraba tanto en el SDK oficial…

xboxonesdk

 

Xboxonesdk2 Xboxonesdk3

… como en presentaciones oficiales sobre la siguiente versión de DirectX.

Lo que ocurre en PC en el caso de DX11 es que existe una sobrecarga en la fase de aplicación debido a que la aplicación no puede enviar listas de comandos directamente al hardware en Windows.

display-driver-model-architecture1

En Xbox 360 la situación era diferente, el juego podía escribir en el búfer de comandos tranquilamente. Obviamente el Xenos, la GPU, solo soportaba un contexto al mismo tiempo y la gestión pasaba a correr a manos del desarrollador, la cosa se complicaba pero se ganaban unos milisegundos de tiempo en cada fotograma que se podían utilizar para aumentar la calidad visual del mismo o en su defecto aumentar la tasa de fotogramas.

¿Cual es la clave de todo el tema? Dado que la mejora de DX12 es el hecho de poder utilizar múltiples núcleos de la CPU para la creación de múltiples listas de comandos para la GPU. Esto significa que las CPUs más potentes en PC tienen que ser las que otorguen ese 30-40% de rendimiento y no Xbox One y no lo digo por echar mierda a la consola de Microsoft, al contrario, el tema esta en que la gran optimización de DX11 a DX12 en PC en lo que al rendimiento se refiere es precisamente esa.

cmd_buffer_behavior-dx11 cmd_buffer_behavior-dx12

La pregunta clave aquí es… ¿soporta DX11 Mono la creación de multiples listas de comandos desde varios núcleos?  Antes hemos leído a Ian Bell, quien es el jefe del estudio afirmar que donde tienen problemas por la falta de un soporte multihilo en la CPU es en el DX11 de PC, esto significa que esto ya se encuentra disponible en DX11 Mono, pero esta mejor optimizado y con mejor rendimiento en DX12 y de ahi el probable salto de un 7%  o superior, pero no es un salto del 30-40% desde el momento en que hace un tiempo que en Xbox One se pueden utilizar múltiples núcleos para enviar múltiples listas de comandos.

Anuncios