TecStudio
- Publicidade -

Valley quer acabar com o stutter em chips Arm antes de você apertar play no Steam

Por Redação TecStudio
5 min
- Publicidade -
Epic Games vs Steam

Rodar um jogo de PC num chip Arm é como pedir para alguém traduzir um livro em tempo real enquanto você lê, sem poder pular as palavras que já conhece. A Valve quer resolver isso antes mesmo de o jogo começar.

Steam's Pierre-Loupe Griffais with PCWorld's Adam Patrick Murray
Pierre-Loup Griffais, engenheiro da Valve, em entrevista à PCWorld sobre o futuro do FEX no Steam Imagem: PCWorld
- Publicidade -

A empresa planeja integrar o cache de tradução do FEX, o tradutor de código x86 para Arm, ao sistema de Pre-Caching do Steam. A ideia, segundo o engenheiro da Valve Pierre-Loup Griffais em entrevista à PCWorld, é que o código traduzido já esteja disponível antes do primeiro launch, eliminando os travamentos que acontecem quando o processador encontra instruções novas no meio do gameplay.

Traduzindo: em vez de o chip Arm engasgar enquanto tenta decifrar as instruções do jogo durante a partida, o Steam faz o trabalho pesado antes. “FEX code caching é vital para a consistência do tempo de quadro”, disse Griffais. “No futuro, será integrado com o Pre-Caching do Steam para que o código em cache esteja disponível mesmo antes da primeira execução local.”

A Valve quer tirar a tradução do meio da jogatina

A maioria dos jogos de PC é feita para processadores x86 da Intel e da AMD. Chips Arm falam outro idioma de instruções. O FEX entra como intérprete: traduz o código x86 em instruções Arm enquanto o jogo roda. Quando ele encontra um trecho de código inédito e precisa traduzir ali na hora, o processamento extra pode estourar o orçamento de tempo de cada quadro, os 16,7 milissegundos disponíveis a 60 quadros por segundo, e causar um hitch, aquele microtravamento que tira a imersão.

16,7

Milissegundos disponíveis por quadro a 60 FPS

Fonte: Valve / PCWorld

“Quando integrado com Proton ARM, o FEX só traduz o código de CPU da aplicação”, explicou Griffais. O Proton, camada de compatibilidade da Valve, consegue alternar para execução nativa Arm na fronteira da API Win32. O sistema operacional e os drivers de vídeo rodam nativamente, deixando o FEX concentrado apenas nas instruções de processador do jogo.

O cache persistente, introduzido no FEX em setembro e aprimorado em outubro, já guarda o código traduzido entre sessões num arquivo em disco. A Valve ativou o recurso no Proton Experimental para Arm e, segundo Griffais, a melhora aparece nos 1% lows, os frames mais lentos que o FPS médio esconde. A integração com o Pre-Caching do Steam é o passo seguinte: em vez de esperar o jogo rodar para construir o cache, a tradução já vem pronta.

O mercado também corre atrás do stutter

A Valve não está sozinha na briga para tirar o trabalho pesado do meio da partida. A Microsoft e a Nvidia atacam o stutter de shaders com o Advanced Shader Delivery (ASD), tecnologia que o TecStudio cobriu em outubro. A Intel também desenvolve o Graphics Shader Distribution Service para reduzir atrasos de compilação.

Há uma diferença importante, porém: o FEX armazena código de CPU traduzido, enquanto ASD e serviços similares lidam com shaders de GPU. Um não substitui o outro. E nenhum deles resolve milagrosamente toda fonte de stuttering, engasgos por asset streaming, gargalos de CPU ou otimização capenga continuam existindo. Mas a lógica é a mesma: fazer o trabalho caro antes de ele interromper o jogo.

A Valve está numa posição única: já opera a plataforma que entrega os jogos e tem anos de infraestrutura de pré-caching de shaders no SteamOS. Estender esse sistema para o código de CPU traduzido pode fazer a experiência em chips Arm parecer muito menos um experimento de compatibilidade.

O cache ainda não faz milagre

O cache persistente do FEX ainda está amadurecendo. A versão de setembro saiu com arestas: caches que cresciam sem controle e entradas obsoletas que nem sempre eram invalidadas quando os arquivos mudavam. A atualização de outubro corrigiu parte disso, com um limite configurável que vem em 1 GB por padrão e limpeza de caches desatualizados após atualizações do FEX.

nvidia rtx spark 6
Plataforma RTX Spark, da Nvidia, um dos hardwares Arm que podem se beneficiar do cache do FEX Imagem: PCWorld

Griffais também alertou que as GPUs Arm podem ser bem diferentes das GPUs de desktop que os jogos de PC miram, o que pode gerar custo de performance com recursos gráficos mais novos. A tradução de CPU também pesa na bateria mesmo quando o impacto na taxa de quadros é pequeno.

Não há data para a integração com o Pre-Caching do Steam nem dados de performance divulgados. Também não existem testes independentes abrangentes mostrando o quanto o novo cache do FEX melhora o gameplay em diferentes chips Arm, que incluem os Snapdragon Elite da Qualcomm e a plataforma RTX Spark da Nvidia. Mas a direção está dada: fazer o processador traduzir antes de ter que interpretar na hora é o caminho.

Perguntas frequentes

O que é o FEX?

É o tradutor de código x86 (de jogos Windows) para instruções de processadores Arm, desenvolvido pela Valve.

O que muda com o Pre-Caching do Steam?

O código traduzido fica pronto antes do primeiro launch, em vez de ser compilado durante o jogo, eliminando travamentos.

O FEX resolve todo o stutter?

Não. Ele cuida da tradução de código de CPU. Stutter de shaders (GPU), asset streaming ou má otimização continuam existindo.

📲 Essa história ainda tem capítulo pela frente. Para não perder nenhum desdobramento, entra no Canal do TS no WhatsApp.

Fonte: PCWorld

- Publicidade -
Conta da redação do TecStudio. Assina as notícias produzidas com auxílio de um ou mais autores.