Começando hoje com o mais novo código Mesa 23.2-devel, a opção de variável de ambiente AMD_DEBUG=useaco agora está disponível para dizer ao driver RadeonSI Gallium3D para usar o back-end do compilador de shader ACO da Valve em vez do back-end do compilador de shader AMDGPU LLVM para os tipos de shader suportados.

A Valve passou anos trabalhando no back-end do compilador ACO como uma alternativa mais rápida ao compilador shader baseado em LLVM oficial da AMD usado pela RadeonSI, anteriormente pela RADV, e também a pilha de computação ROCm, etc. O back-end do compilador ACO tem sido vital para o sucesso do driver RADV e tornando-o um ótimo driver para jogadores Linux no Steam Deck e aqueles no desktop Linux que apreciam os gráficos Radeon de código aberto.

Há anos se fala em trazer o ACO para o RadeonSI e isso está acontecendo lentamente. Graças a este pedido de mesclagem de Qiang Yu, a última peça do quebra-cabeça a ser montada permite habilitar o Compilador ACO com a opção AMD_DEBUG=useaco para tipos de shader suportados.

Mas com essa mesclagem inicial, o suporte do compilador ACO com RadeonSI é apenas para shaders de pixel monolíticos. Qiang explicou no MR:

“A compilação ACO pode ser habilitada com AMD_DEBUG=useaco. Atualmente, apenas PS monolítico é suportado. Seria uma grande mudança mudar todos os shaders para ACO de uma vez, então meu plano é habilitar um por um para facilitar a revisão e depuração.”

Ele trabalhou com as regressões conhecidas que originalmente existiam para o compilador ACO com sombreadores de pixel em comparação com o back-end do compilador LLVM.

É bom ver este último lote de código ACO + RadeonSI com várias centenas de linhas de novo código. Esperançosamente, mais tipos de shader começarão a funcionar em breve para ACO com RadeonSI. Outros trabalhos ACO pendentes para Mesa podem ser encontrados através esta consulta GitLab.

Categories: IT Info