O Ato Três de Baldur's Gate 3 afeta drasticamente o desempenho da CPU - mas por quê?
E há algo que possa ser feito em relação a isso?
Pouco depois do nosso principal conteúdo de Baldur's Gate 3 ter sido lançado na semana passada, notei uma variedade de comentários sugerindo que quanto mais se avança no jogo, mais as características de desempenho mudam. Veteranos da versão de acesso antecipado queriam testes mais específicos do terceiro ato em particular e, graças a um save do jogo fornecido pelo usuário do Twitter DarknessFX, tivemos acesso a um save de 99 horas e estávamos prontos para realizar testes de desempenho de stress.
Então, o que há de tão especial no terceiro ato? Simplificando, trata-se de densidade, com a ação mudando para a cidade de Baldur's Gate em si, uma grande cidade na história da série, com muitos NPCs. Na minha análise principal na semana passada, notei que PCs de especificações intermediárias tinham dificuldades em áreas mais populosas, e apenas correr pela cidade demonstra que a contagem de NPCs aqui é significativamente maior. A densidade acrescenta consideravelmente à carga da CPU - e acho que isso amplifica outros problemas como resultado, que não eram visíveis em nosso trabalho inicial.
Uma das peculiaridades desse desempenho mais pesado no Ato Três é que o movimento torna o jogo visivelmente mais pesado na CPU. Numa cena estática particular, observei um frame rate de 90fps em um Core i9 12900K, mas apenas mover o personagem em mini-círculos reduziu o desempenho em 20%, embora a visão e a quantidade de objetos no ecrã sejam essencialmente as mesmas. O frame rate é mais baixo, mas mais pertinentemente, os tempos de frame são mais irregulares.
Outro problema encontrado no terceiro ato surge das transições de câmara para cenas de corte ou conversas, algo que acontece consistentemente em áreas dessa região. A transição para cenas de corte normalmente causa alto uso da CPU de qualquer maneira, mas com uma carga da CPU geralmente mais alta no terceiro ato, essas pausas para entrar em conversa agora são visivelmente piores. No entanto, o maior efeito que notarás em cenas desafiadoras encontradas no terceiro ato diz respeito à estabilidade dos tempos de quadro em geral - ou 'saúde dos frames', como eu a chamo. Isso é melhor explicado visualmente no vídeo incorporado, mas quando os tempos de quadro podem aumentar de 50 a 100 por cento, isso se apresenta como gagueira.
A escolha da API de renderização também pode desempenhar um papel. No Vulkan, o jogo executa áreas com muitos NPCs de maneira semelhante - ou pior - do que o DirectX 11. Portanto, mesmo que o Vulkan possa tecnicamente ser mais rápido em áreas vazias em hardware Nvidia ou AMD sem NPCs, ele realmente funciona pior em áreas com muitos NPCs - cerca de 10% pior no meu 12900K.
Este é um processador de alto nível, mas o impacto no desempenho é francamente desastroso em algo como o Ryzen 5 3600 de nível intermediário. O desempenho cai pela metade logo de cara, mas os tempos de quadro são muito, muito piores. Embora o 12900K definitivamente tenha algumas oscilações nos tempos de quadro e alguma instabilidade, o Ryzen 5 3600 está em uma situação muito pior, onde quase todo outro quadro renderizado mostra uma variação no comprimento que é visível a olho nu. Ele funciona em torno de 30fps em média às vezes, mas não parecerá suave de jeito nenhum, da mesma forma que o Bloodborne nos consoles PlayStation nunca parece suave, pois a variação por quadro é muito alta. Se um quadro para o próximo mostra um aumento de 40 a 50 por cento no tempo de quadro, isso não pode ser suavizado, o que significa que o FreeSync e o G-Sync não vão ajudar aqui.
E pode piorar ainda mais. E se fores um feiticeiro no Ato Três e usar várias criaturas convocadas? Em um 12900K, o desempenho cai 10%, com tempos de quadro mais erráticos. A cada poucos frames, um é mais caro do que os outros - o que pode ser uma atualização de pathfinding, animação ou IA. É difícil saber, é claro, mas em um chip de médio alcance mais antigo como o Ryzen 5 3600, essa atualização de IA a cada poucos frames é amplificada e leva a resultados desastrosos. O número do frame rate sugere uma queda de apenas seis por cento, mas os tempos de quadro podem aumentar em 50 por cento, levando a movimentos trancados que nunca parecem suaves. O Ato Três é realmente um desafio, e os chips mais antigos da série Zen 2 simplesmente não parecem estar à altura da tarefa.
Portanto, os pedidos para examinar especialmente o Ato Três eram justificados. Baldur's Gate 3 simplesmente roda de maneira pior - mas é explicavelmente pior, pois há muito mais IA na tela, amplificando as limitações da CPU. E não há muito o que possas fazer a respeito. Nas configurações mais baixas possíveis, é possível ver como o desempenho médio aumenta em cerca de 14%. Os tempos de quadro são um pouco menos erráticos, mas todos esses terremotos ainda causam grandes picos nos tempos de quadro, e agora estás a perder grande parte do esplendor visual devido ao impacto no nível de detalhe. O Vulkan pode ajudar aqui? Não muito, houve uma queda de desempenho de sete por cento - o DX11 ainda é o melhor caminho a seguir.
Um limite de 30fps, talvez? O limite de freame rate embutido produz ritmo de frames inconsistente com o v-sync ativado, enquanto até mesmo a opção constante de v-sync adaptativo de metade do rate da Nvidia ainda apresenta tempos de quadro com picos devido a limitações da CPU. No entanto, é mais consistente, então uma opção como esta, ou os limitadores Kaldien's SpecialK, podem valer a pena conferir.
Esse desempenho é justificado e pode ser corrigido? Para responder a isso, acho que podemos analisar como o desempenho se escala com a quantidade de núcleos e threads. Ao olhar para o Core i9 12900K, vemos alguns dados interessantes ao examinar como o jogo roda com diferentes quantidades de núcleos e threads. A combinação de melhor desempenho aqui é na verdade de oito núcleos sem hiperthreading ativado. Oito núcleos têm um desempenho apenas quatro por cento melhor do que seis, enquanto o 12900K totalmente ativado tem apenas dois pontos percentuais a mais do que o resultado de seis núcleos, apesar de dobrar os threads e núcleos disponíveis. Oito núcleos com hiperthreading ativado é o pior resultado de todos, um pouco mais lento que o resultado de seis núcleos.
Na minha opinião, essa escalabilidade mostra que o Baldur's Gate 3 precisa de mais trabalho, com melhor utilização de processadores de muitos núcleos (e talvez um entendimento de que os usuários provavelmente não desativarão o hiperthreading no nível da BIOS). Um foco em reduzir a gagueira causada por terremotos e mudanças de posição da câmera também seria bem-vindo.
O Vulkan permanece uma incógnita. Seu propósito parece vazio se não melhorar o desempenho da CPU quando você mais precisa, e uma implementação Vulkan boa e eficiente poderia ser a base necessária para ajudar nas questões limitadas pela CPU. Com tudo isso em mente, será fascinante ver como a versão do PlayStation 5 se compara, considerando que ela usa a mesma arquitetura Zen 2 que o Ryzen 5 3600, que tem tantos problemas no ambiente do Ato 3.