Volta dos patches NTSYNC

A volta dos patches NTSYNC para o Kernel Linux: Melhorando o desempenho de jogos do Windows no Linux

Ícones do GNU e do pinguim Tux representando o Linux Kernel e o GNU Linux-libre em fundo laranja.

Após meses de inatividade, os patches do driver NTSYNC para o kernel Linux foram retomados com atualizações significativas. Esses patches têm como objetivo otimizar os primitivos de sincronização do Windows NT, permitindo um desempenho aprimorado de jogos no Linux por meio de ferramentas como Wine e Proton (Steam Play).

Desenvolvimentos recentes

Os patches mais recentes incluem duas atualizações importantes:

  1. Versão 6 (v6): Atualizada para ser compatível com o código do Linux 6.13.
  2. Versão 7 (v7): Trouxe melhorias cruciais no design da API:
    • Renomeação: Mudança de NTSYNC_IOC_SEM_POST para NTSYNC_IOC_SEM_RELEASE, alinhando-se à terminologia do Windows NT.
    • API Simplificada: As chamadas de criação de objetos agora retornam descritores de arquivos (FDs) diretamente, reduzindo a complexidade do uso.

Essas mudanças foram possíveis porque o código inicial, incompleto, estava protegido pela opção “BROKEN” no Kconfig. Isso permitiu refinamentos sem comprometer a compatibilidade com APIs de espaço do usuário.

A importância do NTSYNC

O driver NTSYNC é essencial para implementar os primitivos de sincronização do Windows NT no Linux. Esses primitivos possuem características únicas, como:

  • Espera Multiplexada: Operam em múltiplos tipos de objetos (mutex, semáforo, evento).
  • Interação Direta com o Estado do Objeto: Permite controle direto sobre as filas de espera subjacentes.

No passado, o Wine utilizava uma abordagem baseada em RPC (chamada de procedimento remoto) para simular esses primitivos, mas esse método criou gargalos de desempenho em aplicativos modernos. Com o NTSYNC, essas operações passam a ser diretamente gerenciadas no kernel Linux, reduzindo significativamente a sobrecarga.

Ganho de Desempenho

O impacto do NTSYNC no desempenho varia dependendo do jogo e do hardware utilizado. Alguns títulos apresentaram melhorias impressionantes no FPS (quadros por segundo). Veja alguns exemplos:

JogoFPS AtualFPS com NTSYNCMelhoria
Anger Foot6999+43%
Call of Juarez99.8224.1+125%
Dirt 3110.6860.7+678%
Resident Evil 22677+196%
Tiny Tina’s Wonderlands130360+177%

Próximos passos

Com a versão 7 dos patches sob revisão, há expectativa de que o driver seja finalmente integrado nas próximas versões do kernel Linux. Isso permitirá que Wine e Proton utilizem o NTSYNC, trazendo benefícios diretos para os jogadores que usam Linux.

Para quem deseja saber mais sobre o desenvolvimento do driver e sua apresentação no Linux Plumbers Conference 2023, o vídeo está disponível logo abaixo:

Emulating NT synchronization primitives in Wine - Zeb Figura

Conclusão

O driver NTSYNC representa um marco na integração entre Windows e Linux, especialmente no contexto de jogos. A redução da sobrecarga e o aumento significativo no desempenho mostram o potencial dessa tecnologia para tornar o Linux uma plataforma ainda mais viável para gamers.

Gostou do conteúdo? Compartilhe suas opiniões ou explore outros artigos relacionados!

Acesse a versão completa
Sair da versão mobile