Usando Wine com desempenho máximo para jogos

O Wine é uma camada de tradução (um lançador de programas) capaz de correr aplicações Windows em Linux e noutros sistemas operativos compatíveis com POSIX. Neste artigo, mostrarei o uso básico do Wine para quem pretende usar para jogos. Tratarei de assuntos como: DXVK, versões custom do Wine e variáveis de ambiente que auxiliam no seu uso.

[ Hits: 6.579 ]

Por: José Lucas em 20/09/2021 | Blog: https://github.com/NIDObr


Como usar o Wine com desempenho máximo para jogos



O Wine "puro" traduz as instruções da biblioteca DirectX para OpenGL. Nessa tradução, existe a perda de desempenho. Se o jogo está em DirectX, terá perda de desempenho ao traduzir para OpenGL (veremos como melhorar isso). Mas, se o jogo que você pretende jogar foi feito em OpenGL, o desempenho será melhor e não a muito para mexer.

Baixe o Wine aqui: https://www.winehq.org/

Agora veremos alguns conceitos importantes.

WINEPREFIX

O WINEPREFIX é uma variável usada pelo Wine para definir a sua unidade "C:" virtual, por padrão é ~/.wine. Para alterar a localização basta definir a variável com o diretório de sua escolha:

WINEPREFIX=/home/user/meu_wine winecfg

O "winecfg" no comando acima irá gerar esse novo WINEPREFIX. Recomendo que use um WINEPREFIX para cada jogo.

DXVK (DirectX Vulkan)

De acordo com sua página no GitHub, o DXVK é a implementação baseada em Vulkan e DirectX versões D3D9, D3D10 e D3D11 para Linux/Wine. Como tinha dito antes, o Wine "puro" traduz as instruções da biblioteca DirectX para OpenGL, já com o DXVK as instruções da biblioteca DirectX são traduzidas para Vulkan, que é uma API de baixo nível, assim melhorando muito o desempenho. Lembrando que a sua placa de vídeo precisa ter suporte ao Vulkan.
Primeiro devemos baixar o DXVK:

wget https://github.com/doitsujin/dxvk/releases/download/v1.9/dxvk-1.9.tar.gz

NOTA: veja no link do DXVK qual é a versão atual. Aqui usarei a 1.9.

Para instalar:

tar xvf dxvk-1.9.tar.gz
cd dxvk-1.9
chmod +x setup_dxvk.sh
WINEPREFIX=/home/user/meu_wine ./setup_dxvk.sh install

Para desinstalar:

WINEPREFIX=/home/user/meu_wine ./setup_dxvk.sh uninstall

Nesse caso usamos um WINEPREFIX diferente do padrão "/home/user/meu_wine", caso o WINEPREFIX usado não exista gere ele com o winecfg, como mostramos lá em cima.

Versões custom do WINE

As principais versões custom do wine são o wine-ge e o wine usado pelo Lutris, essas versões alternativas irão influenciar principalmente na compatibilidade dos jogos. Exemplo: se o jogo X não funcionar com o wine padrão tente com essas versões.
Vamos usar o wine-lutris como exemplo:
wget https://github.com/lutris/wine/releases/download/lutris-6.10-3/wine-lutris-6.10-3-x86_64.tar.xz
tar xvf wine-lutris-6.10-3-x86_64.tar.xz

Para usar devemos usar o caminho completo para o executável do wine. Ex.:

WINEPREFIX=/home/user/meu_wine /home/user/lutris-6.10-3-x86_64/bin/wine PROGRAMA.EXE

Onde PROGRAMA.EXE é o programa do Windows que você quer rodar pelo Wine.

Variáveis de ambiente

Com as variáveis de ambiente podemos alterar a forma como o Wine funciona, mostrarei as principais ("0" desabilita e "1" habilita):

DXVK_HUD=full # Um HUD completo para DXVK

DXVK_HUD=fps # Mostra apenas os fps

GALLIUM_HUD=fps # HUD para OpenGL(biblioteca MESA), mostra apenas os fps

mesa_glthread=true # threaded optimization, para drivers MESA

__GL_THREADED_OPTIMIZATIONS=1 # threaded optimization, para drivers NVIDIA proprietários

WINEESYNC=1 # Para os wine custom, também pode habilitar ESYNC (Em alguns jogos não funciona)

Para usar, exemplo:

DXVK_HUD=full WINEESYNC=1 WINEPREFIX=/home/user/meu_wine /home/user/lutris-6.10-3-x86_64/bin/wine PROGRAMA.EXE

Mais variáveis para DXVK: https://github.com/doitsujin/dxvk#hud

Mais variáveis para GALLIUM_HUD: HowTo Galium-HUD (em inglês) e Envvars#galium-enviroment-variables

Mais variáveis para MESA: Envvars#radv-driver-enviroment-variables

Conclusão

É possível melhorar muito o desempenho do Wine. É um assunto extenso e tentei abordar o principal (consultem os links para mais detalhes). Esse é o primeiro artigo que escrevo, espero que tenha ficado fácil o entendimento e espero que gostem!

   

Páginas do artigo
   1. Como usar o Wine com desempenho máximo para jogos
Outros artigos deste autor

Habilitar a aceleração por hardware AMD AMF no OBS

Leitura recomendada

Desenvolvimento de jogos com Monogame e Monodevelop

Alien Arena, um jogo FPS para GNU/Linux

Blood Frontier - Jogo de tiro em primeira pessoa e open source!

Criando um servidor de Counter Strike 1.6 + AdminMod + MetaMod + StatsMe

Xadrez no Linux - Os melhores programas para jogar e estudar

  
Comentários
[1] Comentário enviado por cizordj em 20/09/2021 - 23:21h

Obrigado pela dica! Eu vou testar ela em um jogo que eu tenho aqui que quase sempre trava, o mais desanimador é que eu tenho que jogar com os gráficos no mínimo enquanto que nos Windows ele roda lisinho.

[2] Comentário enviado por maurixnovatrento em 20/09/2021 - 23:27h


É necessário que mais conteúdos atualizados sobre o wine como esse, sejam disponibilizados para a comunidade. Excelente artigo.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]

[3] Comentário enviado por NidoBr em 20/09/2021 - 23:36h


[1] Comentário enviado por cizordj em 20/09/2021 - 23:21h

Obrigado pela dica! Eu vou testar ela em um jogo que eu tenho aqui que quase sempre trava, o mais desanimador é que eu tenho que jogar com os gráficos no mínimo enquanto que nos Windows ele roda lisinho.


Obrigado, espero que seja de ajuda, tem muita coisa para abordar ainda mas acho que esse é o principal.

[4] Comentário enviado por NidoBr em 20/09/2021 - 23:36h


[2] Comentário enviado por mauricio123 em 20/09/2021 - 23:27h


É necessário que mais conteúdos atualizados sobre o wine como esse, sejam disponibilizados para a comunidade. Excelente artigo.

___________________________________________________________
[code]Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento [/code]


Obrigado, tenho mais conteúdo no meu blog, vou tentar posta-los aqui também. https://minemam-br.blogspot.com

[5] Comentário enviado por cizordj em 21/09/2021 - 20:41h

Testei aqui e o jogo ficou muito mais lento (1 frame por segundo), mas isso é culpa da placa de vídeo mesmo. Eu tô usando uma Nvidia GTX 750. Ao que tudo indica o meu driver não suporta vulkan.

[6] Comentário enviado por NidoBr em 21/09/2021 - 21:27h


[5] Comentário enviado por cizordj em 21/09/2021 - 20:41h

Testei aqui e o jogo ficou muito mais lento (1 frame por segundo), mas isso é culpa da placa de vídeo mesmo. Eu tô usando uma Nvidia GTX 750. Ao que tudo indica o meu driver não suporta vulkan.


Serio?! que pena, sem suporte a Vulkan não tem muito o que fazer, no momento.

[7] Comentário enviado por rauldipeas em 25/09/2021 - 14:46h


Você não mencionou o FSYNC, que atualmente é o que permite a maior performance no WINE, porém, além de precisar usar uma versão do WINE que tenha suporte ao recurso(creio que o WINE GE já tem esse suporte, eu uso o WINE TkG), também é necessário usar um kernel compatível como o XanMod, por exemplo.

Outro lance que talvez vale revisar, é que é possível instalar o DXVK direto pelo WINETricks, simplificando o processo, o resultado é exatamente o mesmo.

[8] Comentário enviado por NidoBr em 25/09/2021 - 15:07h


[7] Comentário enviado por rauldipeas em 25/09/2021 - 14:46h


Você não mencionou o FSYNC, que atualmente é o que permite a maior performance no WINE, porém, além de precisar usar uma versão do WINE que tenha suporte ao recurso(creio que o WINE GE já tem esse suporte, eu uso o WINE TkG), também é necessário usar um kernel compatível como o XanMod, por exemplo.

Outro lance que talvez vale revisar, é que é possível instalar o DXVK direto pelo WINETricks, simplificando o processo, o resultado é exatamente o mesmo.


Obrigado pela observação, não falei do FSYNC pelos motivos que você citou, preferi abordar só o ESYNC porque é mais fácil pra quem tá começando que é o publico alvo desse artigo e no caso do DXVK preferi abordar a forma manual assim como o WINE para que o leitor saiba como fazer na mão, de outra forma teria abordado opções como Winetricks e Lutris que facilitam muito, obrigado :-).

[9] Comentário enviado por maurixnovatrento em 07/10/2021 - 22:11h


[5] Comentário enviado por cizordj em 21/09/2021 - 20:41h

Testei aqui e o jogo ficou muito mais lento (1 frame por segundo), mas isso é culpa da placa de vídeo mesmo. Eu tô usando uma Nvidia GTX 750. Ao que tudo indica o meu driver não suporta vulkan.


Eu espero que a mx110 suporte. Eu vou querer testar.

[10] Comentário enviado por NidoBr em 08/10/2021 - 22:01h


[9] Comentário enviado por mauricio123 em 07/10/2021 - 22:11h


[5] Comentário enviado por cizordj em 21/09/2021 - 20:41h

Testei aqui e o jogo ficou muito mais lento (1 frame por segundo), mas isso é culpa da placa de vídeo mesmo. Eu tô usando uma Nvidia GTX 750. Ao que tudo indica o meu driver não suporta vulkan.


Eu espero que a mx110 suporte. Eu vou querer testar.


Pelo que vi, sua placa infelizmente não tem suporte a Vulkan.
https://www.nvidia.com/en-us/geforce/gaming-laptops/nvidia-geforce-mx110/specifications/

[11] Comentário enviado por maurixnovatrento em 10/10/2021 - 08:34h


[10] Comentário enviado por NidoBr em 08/10/2021 - 22:01h


[9] Comentário enviado por mauricio123 em 07/10/2021 - 22:11h


[5] Comentário enviado por cizordj em 21/09/2021 - 20:41h

Testei aqui e o jogo ficou muito mais lento (1 frame por segundo), mas isso é culpa da placa de vídeo mesmo. Eu tô usando uma Nvidia GTX 750. Ao que tudo indica o meu driver não suporta vulkan.


Eu espero que a mx110 suporte. Eu vou querer testar.


Pelo que vi, sua placa infelizmente não tem suporte a Vulkan.
https://www.nvidia.com/en-us/geforce/gaming-laptops/nvidia-geforce-mx110/specifications/


Agradeço sua verificação. Fazer oque, o jeito é testar outro tipo de otimização.

[12] Comentário enviado por meinhardt_jgbr em 21/10/2021 - 15:15h

Jose Lucas,

Excelente seu artigo. Abre novas janelas para uma melhor compreensão do WINE. Não tenho usado o WINE para jogos, porém para aplicações que podem envolver altos riscos de perdas ou ganhos financeiros. Uso para fazer instalações diretas ou com auxilio do PlayonLinux de plataformas para analise grafica em operações de bolsa de valores de mini-indice em mercado futuro da B3. Como não opero mais com windows desde 2003, usando apenas Linux, cheguei a demorar mais de 6 meses até conseguir instalar as primeiras plataformas de operação/analise com sucesso. Foi um longo processo de tentativa e erro. Todas as plataformas disponibilizadas por corretoras oferecem e dão suporte somente a plataformas operadas via windows. Chegam até mesmo a desaconselhar o uso tanto de Linux como de iOS. Com certeza vou fazer vários testes usando sua experiencia prévia para melhorar o desempenho das minhas instalações. Parabéns e por favor continue compartilhando seus conhecimentos.

[13] Comentário enviado por NidoBr em 23/10/2021 - 00:02h

Ola meinhardt_jgbr, obrigado, espero que esse conteúdo ajude você.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts