Sobre la falta de anisotrópico en DMC4

shaderytanisotropico

El filtrado anisotrópico es un tipo de filtrado de la misma naturaleza que el bilineal y el trilineal pero mucho más avanzado en calidad de imagen y necesitando por lo tanto una mayor cantidad de accesos a memoria ,16. En las GPUs contemporaneas se realiza a en la cache de primer nivel de los shaders que da el suficiente ancho de banda para poder realizar esta operación.

¿Por qué ocurré lo que ocurré en PS4? Sinceramente…

istockphoto_4894377-don-t-know

En primer lugar tendría que ocurrir también en Xbox One desde el momento que en ese aspecto hablamos de la misma arquitectura base, una GCN 1.1.

Compute Unit

 

Cada Compute Unit tiene dos pozos de memoria, el desarrollador solo tiene acceso a la LDS donde se almacenan los shaders que que tiene que realizar, en los 16KB de cache L1 van a parar las texturas o en su defecto los trozos de las texturas con los que tiene que trabajar la Compute Unit. No se ha de confundir el trabajo de la unidad de texturas con los ROPS, la unidad de texturas LEE, los ROPS ESCRIBEN. Aunque en las memorias RAM la tasa de lectura y escritura es siempre simétrica, por lo que las necesidades de una parte acaban por afectar a la otra. Imaginad ahora el hecho de quitar la cache de primer nivel y sus consecuencias. Sin la cache de primer nivel conectada a las unidades de texturas entonces el rendimiento caería en picado ya que ciertas operaciones gráficas esenciales requieren de un enorme ancho de banda que sería imposible de conseguir de otra forma.

Ahora bien, tanto en PS4 como en Xbox One hay 64 bytes/ciclo de ancho de banda por CU, cada una de estas tiene 4 Texture Units y sus correspondientes unidades de acceso lo que hacen 16 bytes/ciclo. Sí renderizamos con precisión RGBA8 entonces es posible realizar el filtro anisotropico en solo ciclo, si ya nos vamosa precisión RGBA16 o RGBAFP16 entonces necesitaríamos dos ciclos y cuatro si hablamos de texturas en formato RGBA32 o RGBAFP32. El filtro trilineal al necesitas solo 8 accesos duplica estas tasas aunque nunca se puede pasar de la tasa de relleno máxima que es velocidad de reloj*numero de unidades de texturas.

Ahora bien, el caso del que me hablas es de una remasterización de un juego aparecido durante la generación pasada que para colmo tuvo su versión en PC, no estamos hablando de un juego de alto calibre y su versión de PC debería facilitar la portabilidad tanto a Xbox One como a PS4 desde dicha versión:

 

Un juego de este calibre técnico no debería ser un problema de ejecutar con anisotrópico. Por lo que el problema no puede estar en el hardware de la consola, ha de estar en el propio juego y creo que el origen esta en la versión de PC aparecida hace unos años. ¿Y con que me encuentro? Pues con esto:

DMC4 no soporta filtro anisotrópico como estándar.

Vamos, que por lo visto en PC lo has de forzar a través del controlador de la tarjeta. ¿Es la versión de PS4 un port directo de la de PC y de ahí su no soporta al filtro anisotrópico? En todo caso debería quedar claro que PS4 puede con dicho filtro en esas condiciones.

Anuncios