DirectX 12 y Windows 10, al rescate de la realidad virtual

Si preguntásemos a Oculus cuáles son los principales problemas de software al que se encuentran los desarrolladores de experiencias de realidad virtual, es probable que el rendimiento y la latencia ocuparan posiciones destacadas, algo que Microsoft pretende cambiar con DirectX 12.

9 FEB 2015  16:15

Juanlo

24 comentarios

DirectX 12 y Windows 10, al rescate de la realidad virtual

En Anandtech han realizado un interesante y completísimo artículo en el que analizan el rendimiento de las GPUs actuales, tanto de AMD como de nVidia, bajo Windows 10 y DirectX 12. La nueva iteración de esta API pretende dar un vuelco a la forma en la que los programas y drivers interactúan con el sistema operativo para lograr una mayor eficiencia y aprovechamiento de la enorme potencia de las gráficas actuales. Para ello Windows 10 contará con una nueva versión de DirectX que promete ser la más revolucionaria hasta la fecha, y es que desde que AMD mostró Mantle se hizo patente la necesidad de una API para Windows que funcione con todas las marcas del mercado: AMD, nVidia e Intel, que cada vez está ofreciendo mejores soluciones integradas, especialmente en sus CPUs Broadwell y las futuras Skylake.

 

Windows 10

 

Windows 10 contará con el nuevo modelo de drivers WDDM 2.0, el mayor salto desde la introducción de la versión 1 en el malogrado Windows Vista. Dicho modelo permitirá que muchas de las GPUs DX11 actuales se beneficien de algunas de las características que ofrecerá DirectX 12. Y por fortuna, tanto AMD como nVidia van a dar soporte a una amplia gama de GPUs, desde la familia 7000 en el caso de AMD y desde la familia Fermi (400 y 500) en el caso de nVidia.

 

AMD, Intel y nVidia

 

Según los números publicados por Anandtech, hay importantes mejoras de rendimiento con gráficas actuales como la R9-290X o la GTX-980, pero son resultados que, como siempre, hay que tomar con pinzas, ya que han utilizado el test Star Swarm, el mismo con el que AMD presentó Mantle con anterioridad. Se trata de una prueba diseñada para mostrar los puntos débiles de las versiones actuales de DirectX a base de realizar una enorme cantidad de drawcalls, que quedan atascadas en el cuello de botella que supone el modelo de driver y la versión actual de DirectX, así que es de esperar que en la práctica no veamos los incrementos del 400-500% que se observan en este test por el hecho de migrar a DirectX12. Tenéis diversas gráficas de rendimiento a lo largo del artículo de Anandtech, pero nosotros nos quedamos con esta.

 

Timeframe con DirectX 12 en la GTX 980

Origen de la gráfica: Anandtech

 

El frametime mide el tiempo que tarda la GPU en dibujar un fotograma, y es aquí donde podemos encontrar los mayores beneficios para la realidad virtual. La gráfica muestra cómo una GTX 980 comienza el test con un frametime en torno a la mitad que en DirectX 11, pero una vez que se estabiliza el test se mantiene constante en torno a 10 ms, es decir, la cuarta parte. Repetimos: es un test encaminado a mostrar la eficiencia de DirectX 12 respecto a sus predecesores y en el mundo real los cambios no serán tan drásticos, pero es evidente que la sobrecarga de CPU es mucho menor, hasta el punto de que incluso procesadores con tan solo 2 núcleos mantienen mucho mejor la tasa de fotogramas por segundo y ofrecen resultados cercanos a los de sus hermanos mayores de 4, mientras que los de 6 que podemos encontrar en las gamas X79 y X99 de Intel no mejoran respecto a los de 4. Si en realidad virtual vamos a necesitar tasas de fps que ronden los 90 de forma constante, este cambio es más que necesario.

 

Esta revolución en DirectX no podía llegar en mejor momento, ya que la realidad virtual va a ser extremadamente exigente con nuestros equipos y precisará de todos los recursos que podamos proporcionar. Valve ya afirmó hace un año que SteamOS perseguía una reducción de la latencia, y glNext podría ser la gran apuesta de la compañía de Gabe Newell para su sistema operativo. Por fortuna, Windows también apuesta por un cambio que nos permita aprovechar mejor nuestro hardware. Tanto Unity como Unreal Engine abrazarán la nueva versión de DirectX, lo cual ayudará a los desarrolladores actuales a aprovechar el trabajo que ya lleven hecho cuando llegue el momento de hacer el cambio.

 

No se espera que DirectX 12 y WDDM 2.0 se vayan a incorporar a los sistemas operativos anteriores como Windows 7, 8 u 8.1, pero el hecho de que la actualización desde los mismos a Windows 10 sea gratuita hará que esta carencia resulte anecdótica para la mayoría de los usuarios. Si finalmente llega el Oculus Rift CV1 a finales de año coincidiendo con Windows 10, es más que probable que sea la versión de Windows recomendada por Oculus para obtener la mejor experiencia posible.

Comentarios (24)

Enlace al foro
  • En juegos actuales no pasa eso si das los requerimientos mínimos de CPU salvo picos puntuales en escenas que puede haber por que hay un pico importante de objetos en escena, o muchos efectos de partículas.

    En la demo de elemental pasa eso, al ser una demo hecha para mostrar la calidad de los efectos y demás del unreal hay escenas de muchas partículas que pegan un pico de CPU bastante importante, suelen ser picos rapidos y pocos  si mal no recuerdo los hay y puedes tener por momentos los fps fluctuando para arriba y para bajo por culpa del CPU.

    Normalmente se utilizan instancias y otros métodos para reducir drawcalls, con una drawcall puedes saturar la grafica  antes que la CPU,  pero no siempre es posible, por ejemplo cuantos son objetos diferentes.

    De todas formas no es humo el tema de drawcalls, como ya dije los futuros juegos se aprovecharan de eso y los juegos seran más vistosos, en objetos en pantalla, partículas y demás. Y si no lo son al menos necesitaras mucho menos CPU.

    Pero los pies en el suelo por favor! que las gráficas no van a aumentar su rendimiento más por ese tema! simplemente hara que el CPU no perjudique ese rendimiento tan facilmente.

    0 0
  • DX12 va a ser completamente compatible con cualquier tarjeta que soporte DX11
    0 0