Mi especulación sobre Xbox One Polaris: Hardware, UWP, VR…

Ya comente en en una entrada hace unas semanas que el UWP es un rebranding de WinRT y que precisamente la partición compartida de Xbox One no es otra cosa que WinRT.

Pues bien… ¿Recordáis esta diapositiva de hace unos años?

Pues bien, desde ayer en Gamasutra se puede leer lo siguiente:

Colo hemos resaltado previamente, en el programa actual de preview solo unos 448 MB de los 8 GB de RAM están disponibles para las aplicaciones  y juegos UWP corriendo en la consola, y que el límite crecera en 1 GB en un futuro. Sin embargo esta limitación será levantada si ejecutas tu app en el Visual Studio Debugger. Además las aplicaciones y juegos UWP tienen acceso apenas a la mitad de la potencia de procesamiento de la Xbox One (45% de la GPU y 2 o 4 núcleos de su CPU de 8 núcleos. DirectX 12 tampoco será soportado esta vez, solo DirectX 11 Feature Level 10.

Es decir, Microsoft esta anunciando para Xbox One algo que sabemos que lleva tiempo existiendo y teniendo en cuenta que lo de id@xbox es necesario para desarrollar juegos y que esto es para apps de proposito general… ¿Me puede decir cual es el mercado y por tanto la motivación de hacer apps de ese tipo en una consola? Que digo una consola… En un aparato conectado al televisor. ¿Hay que recordar lo “bien” que le va a Apple y al resto con aparatos como el Apple TV? Y hablando de TV… Es que esto es lo mismo que Microsoft andaba planeando con Don Mattrick al frente… TV..TV… ¿Os acordáis de la presentación original de la consola?

Es más… No es DX12 parte integral del UWP en Windows 10… ¿A que viene no permitir darle el acceso a la API? A no ser que esto sea una mentira colosal por parte de Microsoft: 

Microsoft no para de hablar de la unificación de sus “plataformas” a través del UWP (antes llamado WinRT) a partir de Windows 10…

IMG_2691

Pero resulta que cuando aparecen los detalles concretos respecto a Xbox One llega el si.. pero…Es más, Microsoft en la pasada GDC dio como ejemplos de juegos para el UWP juegos que no correrían en condiciones óptimas en el entorno limitado para UWP de la Xbox One, obviamente son juegos para PC para recordar lo del “viaje a una sola plataforma”. 

Esta claro que para ejecutar los juegos para UWP de forma nativa y sin problemas Xbox One necesita una actualización importante que le permita al Shared OS tener una mejor cantidad de recursos. Aquí es donde en nuestra ecuación entra el hypervisor.

Xbox-One-runs-Windows-8

La idea del Hypervisor no es nueva en una consola de videojuegos, PS3 también tenía uno para permitir cargar en un entorno controlado y limitado el “Other OS” que era lo que permitía a PS3 cargar en sus primeros años Linux pero en un entorno muy limitado en lo que el acceso al hardware se refiere. Los avances de la comunidad hacker permitieron el acceso al Hypervisor de PS3 y Microsoft podría hacer lo mismo de forma legal para darle todo el acceso al hardware de Xbox One al Shared OS/WinRT/UWP. Bajo este planteamiento no haría falta absolutamente para nada un cambio en el hardware.

Pero entonces aparece en escena la PS4K, una versión más potente de PS4 que se dice que saldrá a finales de año, es la primera vez en una generación de consolas que el sistema más potente gana pero es que la paridad en cuanto al catálogo de ambos sistemas provocado por lo editores independientes hace que en la mayoría de veces sea la comparación técnica la que acaba ganando y dado que PS4 es un sistema superior a nivel de hardware por un precio casi igual sumado al efecto bola de nieve de “tengo a los amigos jugando online a la PS4 y por tanto me compro una PS4” ha acabado generando la victoria de Sony esta generación. Imaginaos ahora a Sony lanzando PS4K y aumentando aún más la diferencia visual, en todo caso no creo que PS4K sea Full 4K sino más bien lo que yo llamaría “4K Ready”… ¿Os acordáis de los 720P y el “HD Ready”. ¿Por qué digo esto? Fácil… ¿Cual es la siguiente resolución después de los 1080P? La llamada Quad HD:

display-resolutions

El salto de 1080P a 1440P sería de:

(2560*1440)/(1920*1080)=1.8 aproximadamente.

Es decir:

  • coincide con el salto de 2X que se comenta para la PS4K.
  • Es una resolución que requiere el HDMI 2.0a/2.0 y que requiere un televisor 4K aunque no son los 4K de resolución. Os pongo un enlace que me dejo Nolgan, y la imagen correspondiente a dicho enlace que pertenece a una entrevista a Itoi de Sony donde él habla de HDMI 2.0/2.0a para una futura iteración de PS4, aparte del Ultra HD BluRay (Video en 4K) y el HDR.Captura de pantalla 2016-04-02 a las 10.17.41
  • Todas estas especificaciones coinciden con las del AMD Polaris como ya he comentado varias veces:AMD-Polaris-17
  • Los 1440P como resolución de los juegos no es solo tiene sentido en el entorno de juegos 4K sino que además tiene sentido por el hecho que hay mucha gente con un monitor de este tipo que podria disfrutar del aumento de resolución de los juegos.

¿Y como afecto esto a Microsoft? Estratégicamente es un movimiento de Jaque para limpiar a Microsoft de la mesa.

checkmate

Pero sabemos que Microsoft ha respondido a este movimiento, no solo con declaraciones de Phil Spencer hablando de actualizaciones de hardware de Xbox One sino que en la pasada GDC vimos a Microsoft hablar de la HDR como elemento de futuro.

IMG_2887

Ahora bien, es un hecho contrastado que la superioridad en el diseño del hardware de PS4 es algo que fue una patada al estomago a los arquitectos de la Xbox One, a Microsoft el hecho de que Sony sacará una consola mejor diseñada en cuanto a arquitectura general del hardware les sentó tan mal que hicieron un publi-reportaje para explicar lo que ellos consideraban la “superioridad” de su diseño. ¿Pero con que dilema se encuentra Microsoft que no Sony en estos momentos? El camino de unificación a una sola plataforma y el UWP, lo que entra en conflicto con ciertos elementos del hardware de Xbox One como ahora:

  • La ESRAM.
  • Los Move Engines.
  • El sistema de sonido exclusivo.

La ESRAM es la parte más peliaguda porque si UWP es agnóstico de hardware el código de sus juegos tiene que ser generalista y no puede ser para un código concreto. Un juego bajo UWP no se beneficiaría de la ESRAM y tendría que utilizar un pozo de memoria mejor para ciertas operaciones por lo que nos encontraríamos en una situación donde el nuevo sistema tendría una memoria rápida como GDDR5 por un lado y por el otro memoria interna como es la ESRAM y recordemos que la ESRAM ocupa un espacio importante en el SoC de de Xbox One, casi un tercio del área total:

Teardown-Xbox-One-processor-die-2

El problema de esta ESRAM es que solo es accesible directamente por la GPU, si miráis la litografía veréis que al contrario de lo que ocurre con el uncore, situado entre la CPU, los controladores de memoria y la GPU. La ESRAM  encuentra conectada al uncore exclusivo de la GPU de Xbox One, esto se ve muy bien representado en el siguiente diagrama:

XBox_One_SoC_diagram

¿Puede acceder la CPU a la ESRAM? Los propios arquitectos de la consola dicen que el acceso es muy lento:

Captura de pantalla 2016-04-02 a las 10.42.50

El otro problema que tenemos es la densidad, el aumento de resolución+HDR debería aumentar la cantidad de ESRAM en el SoC hasta unos niveles donde un espacio mucho mayor que el utilizado en la Xbox One estándar. Además que esto entra en conflicto con los últimos avances de AMD en lo que al Uncore se refiere donde todos los accesos a la memoria pasarían a ser coherentes por parte de todos los elementos del sistema entre si gracias a la adopción del bus Onion3, un bus que sustituye la antigua configuración de dos buses utilizada en Xbox One para unificarla en un solo bus coherente capaz de dar suficiente ancho de banda a la GPU.

¿Y que ocurre si eliminamos la ESRAM de la ecuación? ¿Se puede hacer? Lo único que necesitamos es una RAM principal igual de rápida para el modo Xbox One por lo que acabamos ganando un espacio importante para una GPU más potente en el nuevo SoC. Permitimos que los juegos de Xbox One funcionen en el nuevo entorno y eliminamos los problemas de la ESRAM para futuros proyectos.

En todo caso iba a terminar aquí la entrada pero voy y me encuentro con esto de boca de Phil Spencer:

“No soy un gran fan de la Xbox One y medio. Si nos movemos hacía adelante, me quiero mover adelante en números más grandes”

¿Que significa esto? Se le llama salto generacional, es decir, dar la generación por perdida y lanzar una consola nueva. ¿Pero esto no entra en conflicto con esto otro?

Captura de pantalla 2016-04-02 a las 11.04.28

Bueno, recordemos que hubo hace unos años una actualización de un hardware y un re-diseño convertidos en una sucesora de otra consola a nivel de marketing, sabéis muy bien que me refiero al salto de GameCube a Wii:

Los juegos de Xbox One tendrían compatibilidad hacia adelante con el nuevo sistema pero el nuevo sistema se vendería como una nueva generación de tu a tu con PS4K a nivel técnico y quien sabe si por orgullo herido de Microsoft con lo de Xbox One al final sea un poco más potente que PS4K, en fin… Sigamos con lo que ha dicho Spencer.

No se nada sobre los rumores que hay afuera, pero puedo entender que otros “equipos” tengan motivaciones para hacerlo.

Para nosotros, nuestra caja lo esta haciendo bien. Esta funciona, es confiable y los servidores lo están haciendo bien.

Resulta ridículo defender a un sistema de videojuegos bajo esos parámetros, ridículo. Es más, ante el contexto de lo que esta hablando, un salto generacional, lo normal sería decir “A Xbox One aún le falta vida por delante”. Es muy raro que Spencer no se quiera pillar los dedos defendiendo a Xbox One.

Si vamos a ir hacía adelante con cualquier cosa, como he dicho, quiero un cambio realmente sustancial para la gente, una mejora.

Aquí voy a especular bastante. Creo que la “Xbox One Polaris” será más potente que la PS4K al utilizar el modelo completo del Polaris 10 como GPU en vez de la versión reducida. Esto serían 40 CUs vs 36 CUs o lo que es lo mismo: “Xbox One Polaris tendría 2560 Stream Processors”. ¿Con que coincide esta cifra? Con otra GPU de AMD:

AMD-Radeon-R9-290X-290-Specifications

¿Verdad que Sony esta dando empaque a la VR? ¿Pero donde esta la VR de Microsoft? ¿Como es que no han presentado su propia unidad VR? Creo que Microsoft va a permitir el uso de unidades HMD de terceros en vez de desarrollar la suya propia y uno estos terceros sería Oculus.

Oculus-Rift-Final-Xbox-One

¿Me lo invento? Sabemos que existen relaciones entre Oculus y Microsoft. Sacado de la página oficial de Xbox:

Captura de pantalla 2016-04-02 a las 11.38.48

El pacto en el tema de Xbox One es limitado pero… ¿Os habéis fijado como el supuesto Polaris 10 “Full” coincide en especificaciones con la AMD R9 290 en lo que al número de Stream Processors se refiere? Pues ahora hagamos memoria de cual es la GPU recomendada por Oculus para su HMD:

Captura de pantalla 2016-04-02 a las 11.42.57

¡Blanco y en Botella!

El salto sin aumentar la velocidad de reloj de 12 CUs a 40 CUs es un salto de un poco más de tres veces, si subimos la velocidad de la GPU de 853 Mhz a 1 Ghz tenemos que:

Xbox One: 12 CUs*64 SP por CU*853 Mhz*2 (FMADD)= 1.31 TFLOPS.

Xbox One Polaris (hipotética): 40 CUs*64 SP por CU*1000 Mhz*2 (FMADD)=5.12 TFLOPS

Diferencial: 5.12/1.31= 3.9x

El salto es lo suficientemente grande como para que Microsoft venda el nuevo hardware como un salto generacional respecto a Xbox One y le serviría para hacer reset y concederla la victoria a Sony en esta generación  para empezar a través del rebranding una nueva generación de consolas de forma aparente en la que Microsoft no estaría perdiendo y sería al mismo tiempo la respuesta al movimiento de Jaque Mate de Sony con la PS4K.

 

Anuncios