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: 1.064 ]

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
Nenhum artigo encontrado.
Leitura recomendada

Diversão e Entretenimento no Linux

Top 10 melhores jogos FPS para Linux

Duke Nukem online com hDuke, Linux Mint e YANG

Cliente de Ultima Online nativo para Linux

Python no PSP: "Olá Mundo"

  
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 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]

[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 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.

[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 mauricio123 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.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts