FERRAMENTAS LINUX: O Mesa 21.1 resolve o problema do Gallium Nine frequentemente atingir os problemas de memória com jogos de 32 bits

segunda-feira, 8 de março de 2021

O Mesa 21.1 resolve o problema do Gallium Nine frequentemente atingir os problemas de memória com jogos de 32 bits


Confira !!


Para aqueles que usam Gallium3D Nine como um rastreador de estado Direct3D 9 ao executar jogos do Windows no Linux ao invés de DXVK para passar pelo Vulkan, o Mesa 21.1 do próximo trimestre irá lidar melhor com jogos de 32 bits com o rastreador de estado Nove.

Conforme escrito há alguns dias, o Gallium Nine tem visto uma nova rodada de melhorias para este rastreador de estado D3D9 que há muito faz parte do Gallium3D. Gallium Nine ainda é usado principalmente por aqueles com hardware mais antigo sem suporte Vulkan, onde DXVK não é mais compatível. O Gallium Nine geralmente tem um desempenho melhor do que usar o Direct3D 9 do Wine para o caminho de código OpenGL, embora o uso de "Nine" exija uma versão corrigida do Wine.

Um dos problemas persistentes com o Gallium Nine foi com problemas de memória ao executar jogos de 32 bits: erros de falta de memória, outros erros de memória ou aumento do consumo de memória ao executar sem o Nine foram comuns em uma ampla variedade de jogos D3D9 populares quando executando as compilações de 32 bits por meio de Nine. Mas com o código mais recente do Mesa 21.1-devel fundido hoje, isso deve ser um problema do passado.

O desenvolvedor principal do Gallium Nine, Axel Davy, explicou no MR que foi homenageado esta manhã, "armazenar em memfd e liberar a memória virtual anexada à alocação até que seja necessária. Os arquivos memfd são um recurso do kernel do Linux. Ele permite alocar um arquivo armazenado na RAM e visível apenas para o aplicativo. Podemos mapear / desmapear partes do arquivo conforme necessário. Quando uma parte é mapeada, ela ocupa espaço na memória virtual. Quando não é, não funciona. O arquivo é armazenado na RAM e, portanto, a velocidade de acesso é a mesma da RAM normal. Basicamente, em vez de usar malloc (), criamos um arquivo memfd e o mapeamos. Quando os dados não parecem mais ser acessados, podemos remover o mapeamento do arquivo memfd. Se os dados forem necessários, o arquivo memfd será mapeado novamente. Este truque permite alocar mais de 4 GB em aplicativos de 32 bits, enquanto reduz o uso de memória virtual. "

Esse truque do MEMFD deve reduzir o uso de texturas da memória virtual e, em última análise, permitir que mais desses jogos Direct3D 9 de 32 bits sejam executados com alegria com o Mesa's Nine. Esta adição adiciona alguma sobrecarga, mas em última análise deve ser pequena e, devido à maneira como é implementada, possivelmente um aumento de desempenho para software multithread. Essa nova manipulação de memória no código Nine não afeta o comportamento do software de 64 bits.





Fonte

Até a próxima !!


Nenhum comentário:

Postar um comentário