A incrível equipe que está construindo o emulador do Nintendo Switch yuzu tem um novo relatório de progresso para junho de 2023 e é bastante doozy. Sim junho, eles estão atropelando o trabalho anterior. Como de costume, é uma longa leitura cheia de discurso técnico e recursos e correções interessantes, então estou aqui para resumir as partes importantes para você.
A imagem acima é Mario Kart 8 Deluxe, que agora melhorou muito a renderização graças a todo o seu trabalho para melhorar a filtragem anisotrópica em valores mais altos sem problemas de renderização, melhorando a qualidade da imagem e corrigindo um antigo bug de renderização para Mario Kart 8 também.
O próprio yuzu agora vem com “praticamente todos” os dados de fuso horário que o Switch possui por padrão, portanto, uma coisa a menos necessária de um despejo de firmware.
Eles corrigiram um problema quando “uma página de memória está sendo usada pela GPU e escrita pela CPU ao mesmo tempo” que resolveu vários bugs gráficos em Pokemon Scarlet & Violet, The Legend of Zelda: Breath of the Wild e The Legend of Zelda : Lágrimas do Reino, SUPER MARIO ODYSSEY, Xenoblade Chronicles 3, Xenoblade Chronicles: Definitive Edition e mais jogos.
Melhorias também foram feitas para pessoas com menos RAM, gerenciando uma “redução de 99,6%” no uso de RAM para recompilação de shader. Especialmente útil para pessoas com 16 GB ou menos de RAM.
Jogos que usam Unreal Engine 4 não devem mais ter texturas quebradas com a API Vulkan (principalmente um problema na NVIDIA), além de outra melhoria para jogos UE4 graças ao teste do Pikmin 4 Demo que estava travando (e agora resolvido).
Uma mudança que as pessoas com VRAM de 4 GB ou menos podem não apreciar é a mudança do gerenciador de memória Vulkan. Eles ajustaram para preferir “preferir (em vez de exigir) usar a memória local do dispositivo (VRAM) para memória de imagem, o que acaba permitindo que até 50% da memória compartilhada (RAM do sistema) seja usada pela GPU”. Isso torna a maioria dos jogos UE4 estáveis, mas Tears of the Kingdom e outros jogos intensos de VRAM podem gaguejar mais quando a VRAM estiver quase cheia.
Falando em Tears of the Kingdom, agora você pode aumentá-lo com segurança sem quebrar os efeitos de oclusão do ambiente.
A renderização da API OpenGL também teve algumas melhorias, com a implementação de um sombreador de aquecimento de memória local para NVIDIA. Eles também estenderam os mapas de buffer persistentes do cache de textura para o cache do buffer, que eles disseram “mais do que dobra o desempenho do OpenGL no hardware NVIDIA” e disseram que esperam ver resultados semelhantes com o Mesa no Linux também.
Aqui estão algumas boas notícias para o pessoal com pouca RAM!
Como os sombreadores nativos do jogo Switch não podem ser executados diretamente na GPU do usuário, o yuzu precisa recompilá-los em uma representação intermediária (IR), que é um formato intermediário que pode ser otimizado e convertido em um sombreador que os drivers da GPU dos usuários podem realmente alça (SPIR-V/GLSL/GLASM). Por motivos de desempenho, uma quantidade significativa de memória é pré-alocada para armazenar esses blocos de IR, e a implementação antiga usaria 34 MB por thread, duas vezes.
68 MB por thread pode não parecer muito, certo? Mas essa alocação é feita tantas vezes quanto a contagem total de threads da CPU, incluindo SMT. Com algumas maffs rápidas, você pode ver que um Ryzen 3600 consumiria 816 MB de RAM do sistema, um Ryzen 7950X ou um i9 13900 precisaria de 2,2 GB e muitos telefones com SoCs de 8 threads perderiam 544 MB para essas alocações. Obviamente, isso não é um grande problema para usuários com 32 GB de memória do sistema, mas para 16 GB ou menos, principalmente usuários de 8 GB de RAM, esse é um preço muito alto a pagar. Não é incomum ver um laptop com apenas 8 GB de RAM e um Ryzen 5500U equipado com 12 threads, por exemplo, ou telefones e tablets de 8 GB.
byte[] não gostou desse comportamento, então ele o substituiu por um muito mais compatível com a memória. O uso atual por thread é de cerca de 134 KB agora. Isso é uma enorme redução de 99,6%!
Uma das maneiras de melhorar a aparência dos jogos é forçar valores mais altos de filtragem anisotrópica, o que torna as texturas em ângulos acentuados muito mais nítidas. A implementação antiga tinha que pular samplers de vizinhos mais próximos em imagens mipmap para evitar problemas de renderização em jogos como Fire Emblem: Three Houses
e ASTRAL CHAIN
. Essa decisão significava que muitos jogos como Metroid Prime Remastered
não veriam nenhum benefício em usar valores mais altos de filtragem anisotrópica, a ponto de Wollnashorn criar mods para forçar as texturas Breath of the Wild
e Tears of the Kingdom
a filtragem trilinear, permitindo que a configuração de filtragem anisotrópica de yuzu fizesse seu trabalho.
Embora fosse uma boa solução alternativa, Wollnashorn não estava satisfeito com esta solução, então eles melhoraram a heurística usada para permitir a filtragem anisotrópica em qualquer formato de textura sem problemas de renderização, melhorando a qualidade da imagem e, como bônus, até corrigindo um antigo bug de renderização que afetava Mario Kart 8 Deluxe
também!
Eles ainda sugerem o Vulkan por ser mais suave, mas manter as melhorias do OpenGL ajuda o hardware mais antigo.
Uma correção específica do Linux também foi implementada recentemente para evitar que você precise ajustar a configuração vm.max_map_count em seu sistema para sessões de jogo mais longas.
Para obter os detalhes exatos, acesse a postagem no blog do yuzu . Tem muito mais, só estou escolhendo algumas coisas divertidas.
Conheça a cronologia Completa de Zelda:
Cronologia Completa de ‘The Legend of Zelda’: A Linha do Tempo de ‘Link’ em Detalhes.
Cronologia Completa de ‘The Legend of Zelda’: A Linha do Tempo de ‘Link’ em Detalhes
Fonte: yuzu
Valeu!!!!