GDC 2015: UWP y DX12 (I)

Hay cosas bastante interesantes, las fuentes son (I, II)

Rise of the Tomb Raider y Gears of War Ultimate Edition son la primera ola de títulos de la Universal Windows Platform. Ori and the Blind Forest: Definitive Edition y Quantum Break son considerados la segunda ola, junto a otros en desarrollo.

Fijaos que por el momento Microsoft no ha anunciado ningún juego de editor/estudio independiente para el UWP.

Microsoft esta completamente dedicada a hacer Universal Windows Platform “La mejor plataforma para los desarrolladores de videojuegos.”

Lo cual es normal, una plataforma de juegos para tener éxito necesita del apoyo de desarrolladores, ellos son los primeros clientes de una nueva plataforma ya que si eres el poseedor de la misma te van a dar dinero con las regalías de los juego y pueden suplir aquellos espacios que el fabricante no puede suplir. Ahora bien y perdonadme pero… ¿No entra esto en conflicto con Xbox? En fin, continuemos.

La capacidad para desactivar el V-Sync será implementada después este años, junto al soporte para G-Sync y Freesync. Estas características están siendo probadas ahora por los estudios internos de Microsoft.

Una de las cosas que considero de siguiente generación es el hecho de que la pantalla y la GPU no vayan descompensadas en lo que a las tasas de refresco se refiere de uno y otro. Es decir, solventar los problemas derivados en calidad de imagen que se produce cuando los tiempos de la GPU y la pantalla no coinciden. Por otro lado, tiene bemoles que Microsoft en la UWP no deje desactivar la V-Sync.

El soporte para las aplicaciones UWP será implementado en Xbox One en Verano de 2016. Los desarrolladores que estén escribiendo una aplicación UWP en Windows 10 hoy pueden estar seguros que funcionará en Xbox One. La mayoría del código se puede llevar directamente a través de los diferente dispositivos, dejando a los desarrolladores tiempo para optimizar el código para las capacidades únicas y esquemas de control de cada dispositivo.

Tenemos que recordar que UWP no es el Windows clásico de toda la vida en lo que a desarrollo y ejecución de aplicaciones se refiere aunque comparten ciertas librerías. El hecho de colocar UWP en Xbox One no es lo mismo que colocar el Windows Clásico en la consola.

Lo he explicado en una entrada anterior pero aquí lo voy a ampliar. El UWP fue lanzado por primera vez en Windows 8 bajo el nombre de Windows RunTime, el nombre en clave que recibió fue Window RT o WinRT siendo parte primero de Windows 8 y posteriormente de Windows 10.

Windows8Architecture

La parte azul cielo llamada “Desktop Apps” es la parte dedicada a las aplicaciones de escritorio clásicas de Windows. En el caso de WinRT es un sandbox que incluye una serie de APIs universales para la creación de aplicaciones y además comportan un método de distribución de las mismas en común que es la Windows Store. Si le quitamos la parte “Desktop” a Windows 8 tenemos lo siguiente:

2626.Win8-WinRT-Architecture_610x431

WinRT ha evolucionado a UWP, por lo que es un rebranding del mismo para Windows 10. La diferencia de WinRT con Win32 es el hecho de que el primero esta pensado para ejecutarse en una serie de dispositivos más allá del PC de escritorio pero al carecer de las APIs de escritorio la mayoría de aplicaciones clásicas de escritorio no son compatibles con los SO derivados de WinRT por lo que es un SO pensado para sistemas embebidos.

6320.image_07C9A1E3

¿Y que tiene que ver esto con Xbox One? Pues que la parte que pone “Shared OS” del siguiente diagrama es WinRT:

Xbox-One-runs-Windows-8

¿Como lo se? Veamos la siguiente presentación de Microsoft donde hablan del tema:

Captura de pantalla 2016-03-17 a las 10.01.19

Captura de pantalla 2016-03-17 a las 10.02.32

Captura de pantalla 2016-03-17 a las 10.02.49Captura de pantalla 2016-03-17 a las 10.03.13

Captura de pantalla 2016-03-17 a las 10.08.30

Incluso nos dicen los recursos de hardware que consumen dichas aplicaciones en Xbox One.

Captura de pantalla 2016-03-17 a las 10.06.46

Es decir, Microsoft esta colocando el UWP enfrentado el “Exclusive OS” que podríamos llamar Xbox OS, pero en especial lo importante es que lo esta actualizando para que las aplicaciones universales funcionen también en Xbox One. Fijaos que una de las diapositivas habla de “La gran mayoría de WinRT” por lo que el Shared OS de Xbox One es un WinRT incompleto que en verano se completará.

03-b2-uwp-diagram

En fin, sigamos.

Star Wars: Battlefront es el primer título DirectX 12 en Xbox One.

Captura de pantalla 2016-03-17 a las 12.28.14

No quiero hacer leña del árbol caído pero…

WHERE_IS_YOUR_GOD_NOW

Lo digo por:

Captura de pantalla 2016-03-17 a las 10.13.45

Lo llevo tiempo diciendo, la mayoría de ventajas implementadas a nivel de PC con DX12 ya se encontraban en DX11.X aka “Mono” pero los Xbots se han agarrado al clavo ardiente de que a la Xbox One la quedaba potencia de sobra en el interior y que esta se activaría con el uso de DX12. Mi intención nunca fue criticar negativamente a Xbox One sino avisar de los peligros de un falso hype construido encima de la nada, y no me vengáis con que EA DICE son técnicamente unos vagos, por favor.

Un nuevo y mejorado compilador de shaders y el Shader Model 6 están viniendo.

Captura de pantalla 2016-03-17 a las 11.59.09

Ejem, tened en cuenta que hemos demostrado continuamente que la GPU dentro del SoC de Xbox One es la R7 260, no me hagáis perder el tiempo con algo que ya he demostrado con pruebas por favor, … ¿soportará la consola de Microsoft el Shader Model 6?

Captura de pantalla 2016-03-17 a las 12.02.16

Pues si, parece que si que lo soportará. ¿Veís como no solo doy malas noticias de Xbox?

En cuanto lo del LLVM/Clang es bastante importante porque nos explica el motivo por el cual UWP va a poderse convertir en agnóstico de hardware.

Captura de pantalla 2016-03-17 a las 12.08.40

Veamos lo que es LLVM para entenderlo mejor:

Captura de pantalla 2016-03-17 a las 12.13.47

Esto significa que LLVM puede convertir el “código gráfico”, es decir la lista de cosas a hacer que la CPU le escribe a la GPU a un lenguaje intermedio común y de ahí al lenguaje de la GPU en concreto o simplemente convertir el lenguaje directamente al lenguaje que puede entender el hardware y dar acceso a bajo nivel. Esto permite que el código gráfico de los Shaders sea universal independientemente del hardware que se esta usando y también se pueda utilizar en Xbox.

¿Y cuando piensan implementar esto?

Captura de pantalla 2016-03-17 a las 12.18.27

Es decir, hasta finales de 2016 no estará disponible para los desarrolladores.

En fin, sigamos.

Las herramientas de monitorizacion de rendimiento para Xbox estarán disponibles para los desarrolladores de PC.

Captura de pantalla 2016-03-17 a las 11.58.28

PIX es el acrónimo de Performance Investigator for Xbox, es el mismo tipo de herramienta que el Performance Analyzer de Sony  para las PlayStation y nos marca el nivel de carga de trabajo en cada uno de los componentes del sistema al ejecutar los juegos. No especifica si dicha herramienta es para Win32 o para WinRT/UWP, pero diría que es para el segundo caso y viene arrastrada de Xbox, lo que me lleva a pensar que es un paso más a la “integración” completa o “unificación”, lo cual es un eufemismo para decir que el “Xbox OS/Exclusive OS” va a ser reemplazado llegado a un punto.

El objetivo de Microsoft es proveer una cadena de herramientas única independientemente de la plataforma objetivo, sea PC o Consola.

Que es precisamente la definición exacta del UWP.

uwp-windows-10-apps-cropped-universal

Pero aún hay más en dicho sentido…

Un centro universal de desarrollo va a ser implementado, proveyendo a los desarrollados con único camino para enviar sus juegos independientemente de la plataforma que tomen como objetivo.

Esto se llama “Agnosticismo de hardware” por un lado y por otro coincide con “One Dev Center” de la diapositiva del UWP.

Las tiendas de Xbox y Windows se fusionarán más tare durante este año, trayendo características desde la Xbox Store a la Windows Store también, incluyendo soporte para DLC, bundles, suscripciones, pre-orders y plataformas flexibles.

Y aquí tenemos lo del “One Store” de la diapositiva.

Xbox Live es visto como el “tejido de interconexión del ecosistema de videojuegos entre dispositivos.

Por eso pienso que Xbox Live va a ser gratis, aunque claro esta que lo va a ser grátis porque todo apunta a que lo que quiere hacer Microsoft no es solo reemplazar el “Exclusive OS” de Xbox sino que diría que su interés es que también el desarrollo de juegos de PC salte de Win32 a WinRT/UWP, en varias presentaciones llevan presentando esta diapositiva que apuntaría a esto de lo que hablamos:

Captura de pantalla 2016-03-17 a las 11.42.11

¿Pero cuando veríamos la integración? En las diapositivas tenemos cierta información de cuando se va a ir produciendo la unificación, para empezar el envió común de aplicaciones parece que es para Otoño de 2017:

Captura de pantalla 2016-03-17 a las 11.52.31

Ahora bien… ¿Que ocurre con Xbox One? Hay que tener en cuenta que sus juegos no corren en el UWP/WinRT, aunque creo que lo que va a hacer Microsoft va a ser recalibrar la repartición de recursos entre el Exclusive OS y el UWP y va a darle a este más acceso a los recursos de hardware de la consola si le es necesario para ejecutar los juegos, por ahora los recursos disponibles en Xbox One para el Shared OS que será la parte sustituida son cuanto menos escasos para correr juegos AAA.

Supongo que Microsoft dará soporte a quienes quieran hacer juegos para el “Exclusive OS” durante el tiempo de transición y algo más… ¿Es posible que 2018 sea la fecha?

Lo otro de lo que han hablado es del HDR, pero sobre ello hablaré en otra entrada para no mezclar temas.

Anuncios