Como ativar o wine e-sync em sua distro Linux
Com o advento do Steam Play, da empresa Valve, proprietária do Steam, é impossível negar que agora finalmente possuímos uma solução oficial para rodar games compatíveis apenas com Windows® ou MacOS em nossa plataforma favorita. Ter um nome de peso dando suporte é algo que chama a atenção e não pode ser ignorado. A solução está sendo testada e utilizada por vários jogadores no mundo inteiro (supõe-se que essa marca já atingiu 1 milhão de usuários) para que os jogos sejam suportados o mais rapidamente, ou ainda, que ao menos possuam uma forma viável de ser jogados. Este post trata de um assunto que é direta e indiretamente ligado a games, porém é interessante que seja abordado, mesmo saindo do escopo direto do Steam Play/Proton/Wine/DXVK etc.
Mas afinal , o que é o Wine E-sync?
Em termos bem básicos, é um mecanismo que substitui algumas calls do wineserver por file descriptor calls. Para quem tem conhecimentos em programação é algo bem familiar. Clique no link a seguir para aprender mais: Limites de Recurso do Sistema e o Comando ulimit
O que ele faz, na prática, dentro de contexto de jogos é reduzir drasticamente a carga sobre o wineserver, especialmente jogos que utilizam todos os núcleos de processadores Multicore. Este recurso reduz cerca de 80% de carga a incríveis 10% ou menos, fazendo com o que jogo ganhe em desempenho, subindo cerca de 50 frames por segundo, dependendo das configurações do computador. Interessante, não? E como eu tenho acesso a este recurso? Veja a seguir:
1 – Verificando quantos files descriptors você possui:
$ ulimit -Hn 4096
Este é um valor muito baixo. Vamos aumentar para 1048576 e mitigar este “gargalo”. Para isso:
2 – Altere o arquivo/etc/security/limits.conf
, adicionando ao final a opção * hard nofile 1048576
(use o editor da sua preferência)
$ sudo gvim /etc/security/limits.conf * hard nofile 1048576
3 – Em distros que usam systemd, edite os arquivos /etc/systemd/system.conf
e /etc/systemd/user.conf
adicionando ao final dos arquivos a opção DefaultLimitNOFILE=1024:1048576
. Depois, execute o comando sudo systemctl daemon-reexec
e então, reinicie a sua sessão de usuário. Verifique usando o comando ulimit -Hn
para certificar que o valor foi alterado:
$ sudo gvim /etc/systemd/system.conf DefaultLimitNOFILE=1024:1048576
$ sudo gvim /etc/systemd/user.conf DefaultLimitNOFILE=1024:1048576
$ sudo systemctl daemon-reexec
Após reiniciar a sessão:
$ ulimit -Hn 1048576
4 – Desativando o Esync em um jogo rodando via Steam Play, caso você necessite:
a) Clique com o botão direito do mouse sobre o nome do jogo e acesse proprieades:
b) Na guia Geral, clique em Definir opções de inicialização…
c) Na caixa a seguir, utilize a opção PROTON_NO_ESYNC=1 %command%
, confirme e o recurso estará desativado:
Referências:
https://github.com/zfigura/wine/blob/esync/README.esync
https://github.com/lutris/lutris/wiki/How-to:-Esync
https://www.ibm.com/support/knowledgecenter/pt-br/SSYKE2_7.0.0/com.ibm.java.lnx.70.doc/user/ulimits.html
Olá, corrija o inicio da sua matéria:
$ ulimt -Hn
bash: $: comando não encontrado.
Corrigido. Obrigado pela revisão
olá, tento realizar o processo e acaba em “diretório ou arquivo inexistente’ poderia informar meu erro? agradeço já.
Bom dia. Teria como você reproduzir o erro e postar aqui?