FERRAMENTAS LINUX: O RadeonSI pode começar a usar o compilador ACO da Valve para certos shaders

terça-feira, 16 de maio de 2023

O RadeonSI pode começar a usar o compilador ACO da Valve para certos shaders

 



Começou ontem 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 de shader baseado em LLVM oficial da AMD usado pela RadeonSI, anteriormente por RADV, e também a pilha de computação ROCm, etc. O back-end do compilador ACO foi 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.



Durante anos, falou-se em trazer o ACO para o RadeonSI e isso está acontecendo lentamente. Graças a essa solicitação 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 os tipos de shader suportados.

Mas com essa fusão 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 o Mesa podem ser encontrados por meio desta consulta do GitLab .






Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário