GDC 2015: ¿HDR en Xbox One?

Esto me ha llamado mucho, pero que mucho la atención y pienso que es importante.

Captura de pantalla 2016-03-17 a las 12.34.18

Captura de pantalla 2016-03-17 a las 12.36.37 Captura de pantalla 2016-03-17 a las 12.36.07

Es decir, en vez de usar los mejores anchos de banda para aumentar la resolución de las pantallas lo que se hace es aumentar la resolución de color enviada y por tanto mejorar la calidad de imagen de las escenas. Aunque lo que me ha llamado la atención es esto:

Captura de pantalla 2016-03-17 a las 12.38.44

El formato RGBA16F es cuanto menos curioso porque sabemos que Xbox One tiene la ESRAM con una configuración de ancho de banda pensada para dicho formato:

HumuseDRAM

El HDR requiere una mayor información por pixel y es algo que viene del mundo de la fotografía y significa un aumento de la calidad de imagen pero necesitando un enorme ancho de banda para ello.

FHBBIS8HAWBWOF9.MEDIUM

La formula para el ancho de banda necesario para el búfer de imagen en HDR en RGBA16F es:

Velocidad de reloj de la GPU*Número de ROPS*8 Bytes.

Y curiosamente PS4 se encuentra con un problema pese a tener la GDDR5.

Captura de pantalla 2016-03-12 a las 12.27.50

Recordad que las cifras son en un solo sentido, en este caso… Escritura, como vais PS4 no tiene el ancho de banda necesario.

¿Pero es posible que Microsoft utilice el HDR en RGBA16F para mejorar la calidad visual de los juegos de Xbox One sin mejorar la potencia de la consola aprovechando el ancho de banda de la ESRAM? Lo siento pero…

Captura de pantalla 2016-03-17 a las 12.53.46

Para que la gente lo entienda lo voy a explicar cual es el problema, el HDR no solo es el hecho de escribir en el búfer de imagen con dicha resolución sino también el hecho de poder trabajar con texturas de esa resolución. Sebbbi habla aquí de que el blending esta limitado por ancho de banda en las GCN… ¿A que se refiere? Primero de todo hemos de tener en cuenta donde se realice el blending y en concreto es en las Compute Units de la GPU, técnicamente los hacen las unidades de filtrado de texturas, pero para ello me voy a auto-citar de otro artículo de hace unos pocos meses.

Cogiendo la generación actual veremos que cada Compute Unit de la GPU tiene 4 unidades SIMD de 16 Stream Processors cada una, 4 unidades de texturas y 4 bloques de cache de primer nivel dentro de la misma Compute Unit.

GCN_CU

Pero lo que interesa aquí es la cache de primer nivel para texturas y las unidades de texturas asociadas, dichas unidades de texturas se encargan de la interpolación por pixel y según la información de la arquitectura el ancho de banda de la cache L1 es de 64B/ciclo a dicha cache están conectadas las unidades carga y almacenamiento de las unidades de filtrado de texturas y dichas unidades como se puede ver en el diagrama de arriba.

Captura de pantalla 2015-12-02 a las 12.07.32

En teoría 64B/ciclo para una 4 unidades de texturas, son 16B/ciclo por unidad lo que quiere decir que en modo color de 32 bits (4 bytes ciclo) puede realizar bilineal por un ciclo, no olvidemos que el bilineal consiste en interpolar unos cuatro pixeles. ¿Es así..? Veamos lo que dice AMD al respecto.

gs4106-the-amd-gcn-architecture-a-crash-course-by-layla-mah-49-638

En efecto… 4 Texels interpolados por ciclo de reloj, lo que equivale a filtro bilineal y este es el motivo por el cual hay problemas con el anisotrópico, la idea es que a medida que aumentamos la cantidad de pixeles interpolados mayor es la calidad del filtraje de texturas y con ello la calidad de imagen pero a cambio se necesita una mayor cantidad de ancho de banda con la memoria y si esta no es suficiente entonces lo que acaba siendo afectado es la tasa de texturizado.

Es decir, para poder trabajar sin problemas con texturas en RGBA16F lo que se tendría que hacer es algo que no se puede hacer que no es otra cosa que duplicar el ancho de banda de la cache de primer nivel. Es decir, se tendrían que hacer cambios en el hardware profundos y por tanto esta opción no esta disponible en Xbox One a no ser que los desarrolladores quieran recortar enormemente la tasa de relleno de la consola.

Es más, en el caso concreto de AMD están hablando del HDR para sus GPUs de este año y para la serie 300, fijaos además como hablan bajo los mismos términos que Microsoft…

hdr-amd-radeon amd-radeon-hdr

RTG_Page_10RTG_Page_111

Lo cual en parte es engañoso porque las dos únicas GPUs que realmente son novedad respecto a otras series y por tanto son arquitectura GCN 1.2 son Tonga y Fiji. La GPU de Xbox One es una Bonaire, aka GCN 1.1, y una de las novedades de Tonga (R9 285/R9 380, R9 R380X) y Fiji (AMD Fury/Fury Nano) es precisamente la compresión de color.

ColorCompress AMD-Carrizo-APU_Graphic-Color-Compression

La compresión de color permite mejorar el ancho de banda pero no es una solución ideal sino un parche, para dar apoyo nativo al RGBA16F hace falta cambiar todo el hardware de la GPU al completo de arriba a abajo porque es algo que afecto a los anchos de banda internos de la GPU y son precisamente esos cambios los que AMD esta llevando a cabo en Polaris.

AMD-Polaris-GPU-Diagram-900x441

Ahora bien, volviendo al tema de Microsoft hay una cosa que hace unos días comente, algo que con hace unas semanas sería una locura pero con los planes revelados por Microsoft de cara al futuro ha dejado de ser un escenario imposible, otra cosa es que lo hagan.

sgMROPS

¿Que sería Xbox One Polaris? Posiblemente un hardware de “siguiente generación” de Microsoft que sería capaz de ejecutar los juegos de Xbox One por un lado y lo de la UWP por otra, o simplemente acaba siendo la  primera UWP/Xbox Machine y no soporte los juegos de Xbox One… Pero no creo que esto lo veamos antes de 2018 por lo que Xbox One tendrá sus clásicos 5 años de vida antes de que se de el salto a una nueva generación.

En todo caso Microsoft habla de la unificación Xbox/UWP en lo que a la tienda y el envío de software se refiere para el año que viene, algo que he comentado en la entrada anterior. La pregunta sería… ¿Tendrá el atrevimiento Microsoft de sacar una siguiente Xbox a finales de 2017 y empezar así el ciclo de hardware del que hablaba Spencer hace unos días?

Anuncios