El pasado verano nos hicimos eco de que Valve estaba trabajando en un nuevo compilador de shaders llamado ACO, el cual formaría parte del driver comunitario de Vulkan para gráficas AMD, RADV, que además forma parte de Mesa.
RADV se ha consolidado como el principal driver de GNU/Linux para ejecutar la API Vulkan en gráficas AMD, pero hasta el día de hoy mostraba un rendimiento un tanto inconsistente frente a AMDVLK, la implementación de Vulkan oficial de AMD que forma parte de AMDGPU-PRO. Esto abría la puerta a que mucho software (con los juegos en particular de cara a los usuarios finales) rindiera mejor con el driver oficial que con el comunitario, con el perjuicio de que el primero no puede ser instalado, al menos oficialmente, en todas las distribuciones, debido a que AMD solo soporta versiones concretas de distribuciones específicas, mientras que el comunitario funciona en (casi) todas las distribuciones de forma out of the box al formar parte de Mesa. En resumidas cuentas, la intención de Valve con ACO es mejorar el rendimiento de RADV, aunque desde la compañía advirtieron que no habría milagros.
Tras poneros en situación, surgen las siguientes preguntas: ¿Está cumpliendo ACO con las expectativas?, ¿se está postulando como lo que RADV necesita para derrotar a AMDVLK? Según pruebas realizadas por Michael Larabel (jefazo de Phoronix y desarrollador principal de la suite de benchmarks del mismo nombre) con Mesa 20.0 devel obtenido de la PPA Oibaf (Ubuntu), parece que este desarrollo impulsado por Valve invita a la esperanza, cosa que vamos a ver a continuación en los siguientes resultados.
RADV+ACO Vs AMDVLK
El primer juego probado es Dota 2 ejecutado a resolución 4K. Por lo que se puede ver, la situación es como pronosticó Valve. La combinación de RADV con ACO supera tanto RADV estándar como AMDVLK, aunque posiblemente lo sorprendente sea ver a RADV estándar superando a AMDVLK, ya que este título ha sido generalmente un campo dominado por el driver oficial.
En Dawn of War III, uno de los muchos ports realizados por Feral Interactive a Vulkan desde DirectX, vemos cómo a 1080p y calidad ultra RADV+ACO supera con cierta claridad a AMDVLK, sobre todo en la injustamente defenestrada Vega 64, que es una las gráficas que mejor han envejecido en los últimos años. Por otro lado, a resolución 2560×1440 las diferencias parecen reducirse con RADV+ACO manteniendo el primer puesto en todos los frentes. Es importante tener en cuenta que los ports de Feral Interactive suelen ser terreno de RADV.
En F1 2017, nativo para GNU/Linux gracias a Feral Interactive y ejecutado a 1080p y calidad ultra alta, se ve cómo RADV+ACO vuelve a ganar con cierta diferencia, sobre todo en la Vega 64 y en las gráficas Navi (RX 5500 XT y RX 5700 XT), mientras que en la RX 580 el driver RADV estándar es derrotado por AMDVLK. Al parecer, cuanto más reciente sea la tecnología, más diferencias marcará RADV+ACO. Veremos si la tendencia continúa.
En F1 2018, ejecutado con Steam Play (DirectX 11 sobre DXVK) a resolución 2560×1440 y calidad baja, se puede ver que RADV+ACO vence con cierta claridad a AMDVLK, aunque habría sido interesante ver resultados con una configuración gráfica más alta.
Con Hitman 2, ejecutado con Steam Play, tanto a 1080p como a 2560×1440 y en calidad ultra hay un empate entre AMDVLK y RADV+ACO, con una victoria pírrica por parte del segundo, mientras que RADV estándar se queda ligeramente rezagado.
En Rise of the Tomb Raider, juego que llegó hace poco a GNU/Linux, ha pasado algo extraño. Con la configuración gráfica en muy alta y con FXAA como antialising se puede ver cómo la versión estándar de RADV supera muy ligeramente a RADV+ACO.
Sin embargo, la situación cambia cuando se pone la configuración gráfica en la más alta y se usa SMAA como antialiasing, ya que en este escenario AMDVLK es capaz de superar, por muy poca diferencia, a RADV+ACO. Al parecer con el driver oficial el juego no ha podido ser ejecutado con esta configuración sobre una RX 580, una de las GPU más populares de la compañía de Sunnyvale.
Con Strange Brigade ejecutado con Steam Play, calidad ultra y resoluciones 1080p y 2560×1440, RADV+ACO supera muy ligeramente a AMDVLK, con el segundo llevándose la victoria sobre la RX 5500 XT y a 2560×1440.
Sobre A Total War Saga: THRONES OF BRITANNIA ejecutado en calidad ultra y a 1080p, RADV+ACO vuelve a vencer a niveles generales, aunque queda en último lugar usando la RX 5700 XT, donde sorprendemente gana RADV estándar.
Total War: Three Kingdoms arroja unos resultados claramente mejores con las dos implementaciones de RADV, mientras que en Total War: WARHAMMER II las diferencias son menos abultadas, pero con el mismo vencedor.
Conclusión
A pesar de que se ha probado una versión en desarrollo de Mesa, los resultados que arrojan las pruebas de Phoronix muestran que ACO ha sido una contribución positiva para RADV, que dentro de poco podrá competir en mejores condiciones con AMDVLK.
Esto quiere decir que los usuarios de gráficas AMD en GNU/Linux tendrán que meterle cada vez menos mano al sistema para poder jugar y exprimir Vulkan en buenas condiciones, algo que resulta importante no solo en los juegos nativos, sino también con Steam Play.
Las limitaciones en AMDVLK hacen que el soporte de ACO sea muy importante para jugar con más garantías desde cualquier distribución, sobre todo aquellas que no están soportadas oficialmente por AMD, algo a lo que se suma las mayores facilidades que se dan en este sentido distribuciones como Fedora, que debido a su enfoque hace que los pasos necesarios para jugar sean muy pocos, menos que con NVIDIA. Mejor lo tiene Manjaro, que recién instalado ya está preparado para ejecutar juegos sin ningún paso adicional más allá de iniciar Steam y descargar los juegos.