Empresa de válvulas
Assim que os testes forem concluídos e a funcionalidade finalizada, o ACO está planejado para ser oferecido para inclusão na composição principal do Mesa.
O código proposto pela Valve 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. O compilador de shader Mesa utiliza componentes LLVM, que não fornecem a velocidade de compilação desejada e não permitem controle total do fluxo de controle, o que já causou sérios erros no passado. Além disso, o afastamento do LLVM permite implementar análises de discrepâncias mais agressivas e um controle mais preciso da carga de registros, o que permite gerar executáveis mais eficientes.
ACO é escrito em C++, projetado com a compilação JIT em mente e usa estruturas de dados iterativas rápidas, evitando estruturas baseadas em ponteiros, como listas vinculadas e cadeias de uso def. A representação do código intermediário é inteiramente baseada em
Atualmente, apenas pixel (fragmento) e shaders de computação são suportados em GPUs AMD discretas (dGPU VI+). No entanto, o ACO já coleta corretamente shaders para todos os jogos testados, incluindo shaders complexos de Shadow of the Tomb Raider e Wolfenstein II. O protótipo ACO proposto para teste é quase duas vezes mais rápido que o compilador de shader AMDGPU em termos de velocidade de compilação e demonstra aumento de FPS em alguns jogos ao rodar em sistemas com driver RADV.
Fonte: opennet.ru