A partir de hoy con el código de desarrollo de Mesa 23.2 más nuevo, la opción de variable de entorno AMD_DEBUG=useaco ahora está disponible para decirle al controlador RadeonSI Gallium3D que use el back-end del compilador de sombreadores ACO de Valve en lugar del back-end del compilador de sombreadores AMDGPU LLVM para los tipos de sombreadores admitidos.
Valve ha pasado años trabajando en el back-end del compilador ACO como una alternativa más rápida al compilador de shaders basado en LLVM oficial de AMD que usa RadeonSI, anteriormente por RADV, y también en la pila de cómputo ROCm, etc. El back-end del compilador ACO ha sido vital para el éxito del controlador RADV y para convertirlo en un excelente controlador para los jugadores de Linux en Steam Deck y aquellos en el escritorio de Linux que disfrutan de los gráficos Radeon de código abierto.
Durante años se ha hablado de traer ACO a RadeonSI y poco a poco ha ido sucediendo. Gracias a esta solicitud de fusión de Qiang Yu, la última pieza del rompecabezas que se unió permite habilitar la Compilador ACO con la opción AMD_DEBUG=useaco para los tipos de sombreadores admitidos.
Pero con esta fusión inicial, la compatibilidad del compilador ACO con RadeonSI es solo para sombreadores de píxeles monolíticos. Qiang explicó en el MR:
“La compilación ACO se puede habilitar con AMD_DEBUG=useaco. Actualmente solo se admite PS monolítico. Sería un gran cambio cambiar todos los sombreadores a ACO a la vez, por lo que mi plan es habilitar uno por uno para facilitar la revisión y la depuración”.
Ha trabajado en las regresiones conocidas que originalmente estaban allí para el compilador ACO con sombreadores de píxeles en comparación con el back-end del compilador LLVM.
Es bueno ver este último lote de código ACO + RadeonSI aterrizar que son varios cientos de líneas de código nuevo. Con suerte, más tipos de sombreadores comenzarán a funcionar pronto para ACO con RadeonSI. Se puede encontrar otro trabajo pendiente de ACO para Mesa a través de esta consulta de GitLab.