ACO: Implementação para o Mesa Driver desenvolvida pela Valve - Diolinux - O modo Linux e Open Source de ver o Mundo

Responsive Ad Slot

ACO: Implementação para o Mesa Driver desenvolvida pela Valve

Valve desenvolve o ACO. Um compilador de shaders substituto para o LLVM com o objetivo de aumentar o desempenho de jogos no Linux.

sexta-feira, 27 de setembro de 2019

/ por Jedi Fonseca

Em Julho deste ano, a Valve anunciou estar trabalhando no projeto ACO (AMD Compiler). Um novo compilador de shaders projetado para melhorar o desempenho de jogos em GPUs AMD no Linux. 

aco-implementacao-para-mesa-driver-desenvolvida-pela-valve

Falando em termos muito leigos e de forma extremamente resumida: o compilador de shaders é o software utilizado pela sua GPU para produzir efeitos, pós processamento, e os níveis de cor apropriados para uma imagem a ser exibida na sua tela.

O compilador de shaders incluso no Mesa Driver atualmente, e que todos nós utilizamos, é apenas uma pequena parte de um grande projeto chamado LLVM (Low Level Virtual Machine). Justamente por ser apenas uma parte em um projeto maior, os mantenedores do LLVM tem foco em manter o software funcional e estável, mas não em otimização para jogos.

O motivo para isso é que o projeto LLVM é massivo, e um compilador de shaders veloz não faz muita diferença na maioria dos casos. Em jogos, por outro lado, a velocidade com que o compilador de shaders consegue trabalhar pode ser a diferença entre você conseguir ou não jogar um jogo.

Com isso em mente, a Valve começa a criar do zero, o seu próprio compilador de shaders. Tendo como principal objetivo criar um software desde o início pensado e projetado para aprimorar o desempenho de jogos no Linux. Eis que o dia chegou, e no dia 19 de Setembro deste ano (2019) todas as mais de 25.000 linhas de código do ACO foram incluídas no Mesa Driver 19.3.

À princípio o compilador da Valve funcionará apenas com o driver RADV (Driver Vulkan incluso no AMDGPU) em jogos e aplicações que utilizam a API Vulkan. Ao que tudo indica, o ACO também será compatibilizado com OpenGL, mas não por agora.

Apesar de já estar incluso no Mesa 19.3, por ainda estar em fase experimental, o ACO não vem ativado por padrão. Para ativá-lo é necessário utilizar a variável “RADV_PERFTEST=aco” em cada aplicação que você deseja executar utilizando o compilador.

Confira abaixo resultados de testes da própria Valve comparando o desempenho do ACO com o LLVM, no final de Março, quando o desenvolvimento ainda estava muito menos avançado do que agora:

teste-comparativo-entre-o-mesa-driver-com-aco-llvm

O teste retratado na imagem abaixo foi feito pelo Renato do blog FastOS, no dia 5 de Setembro, no jogo Rise of the Tomb Raider.

teste-comparativo-aco-vs-llvm-fastos

Confira o artigo completo no blog FastOS.

Embora a versão atual do ACO tenha sido incluída no Mesa Driver, o desenvolvimento de novas funcionalidades continuará acontecendo em paralelo com esta versão, por fora do Mesa Driver, até estarem estáveis o suficiente para serem incluídas no Mesa.

Por ainda estar em fase de testes, o ACO pode apresentar bugs e ainda não é recomendado ao usuário comum. Porém, se você quer ajudar no desenvolvimento do software, testando e reportando bugs, com certeza será de grande ajuda para os desenvolvedores. Quanto mais testes forem feitos em jogos e hardwares diferentes, mais informações os desenvolvedores terão para aprimorar o software.

Para reportar bugs ou fazer sugestões acesse este link.

O quê você acha sobre o ACO? Eu não penso que uma empresa como a Valve desenvolveria um software dessa proporção sem a certeza de um bom resultado. Quanto a se o ACO realmente será melhor que o LLVM, só o tempo e os testes dirão.

Você gosta de Linux e tecnologia? Tem alguma dúvida ou problema que não consegue resolver? Venha fazer parte da nossa comunidade no Diolinux Plus

Por hoje é tudo pessoal! 😉

Fontes: Phoronix, Steam.

_____________________________________________________________________________

Viu algum erro ou gostaria de adicionar alguma sugestão a essa matéria? Colabore, clique aqui.

Blog Diolinux © all rights reserved
made with by templateszoo