O driver RADV Vulkan foi alterado para usar o backend de compilação do shader ACO

Na base de código usada para formar a versão Mesa 20.2, realizado trocando RADV, o driver Vulkan para chips AMD, para usar o backend padrão para compilar shaders "ACO“, que está sendo desenvolvido pela Valve como uma alternativa ao compilador de shader LLVM. Essa mudança levará ao aumento do desempenho do jogo e à redução do tempo de inicialização. Para retornar o backend antigo, a variável de ambiente “RADV_DEBUG=llvm” é fornecida.

A mudança do driver RADV para o novo backend tornou-se possível depois que o ACO alcançou paridade de funcionalidade com o antigo backend desenvolvido pela AMD para o driver AMDGPU, que continua a ser usado no driver RadeonSI OpenGL. Teste pela Valve mostrouque o ACO é quase duas vezes mais rápido que o compilador de shader AMDGPU em termos de velocidade de compilação e demonstra um aumento no FPS em alguns jogos ao rodar em sistemas com o driver RADV.

O driver RADV Vulkan foi alterado para usar o backend de compilação do shader ACO

O driver RADV Vulkan foi alterado para usar o backend de compilação do shader ACO

O back-end do ACO visa fornecer a geração de código o mais ideal possível para shaders de aplicativos de jogos, além de atingir uma velocidade de compilação muito alta. ACO é escrito em C++, projetado com compilação JIT em mente e usa estruturas de dados iterativas rápidas, evitando estruturas baseadas em ponteiros. A representação intermediária do código é inteiramente baseada em SSA (Static Single Assignment) e permite a alocação de registros pré-calculando com precisão o registro dependendo do shader.

Adição: No momento, o ACO funciona apenas para o driver Mesa RADV Vulkan. Mas os desenvolvedores do ACO confirmouque o próximo passo será começar a trabalhar na expansão dos recursos do ACO para suportar o driver RadeonSI OpenGL, para que no futuro, para este driver, o ACO possa substituir o compilador de shader LLVM padrão.

Fonte: opennet.ru

Adicionar um comentário