1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Steam Proton - Guia e Feedback

Discussão em 'Novidades GNU/Linux & *nix World' iniciada por Arucard1983, 21 de Outubro de 2018. (Respostas: 5; Visualizações: 610)

  1. Arucard1983

    Arucard1983 Power Member

    Conforme pedido pelo utilizador supra-citado, eu concordo que é necessário ter um thread dedicado para esta funcionalidade.

    No próximo post devo colocar um Guia Rápido para usar o Steam Proton convenientemente, bem como alertar alugumas falhas que em certos casos eram plenamente evitáveis...
     
  2. Arucard1983

    Arucard1983 Power Member

    Steam Proton:
    Lançado nos finais de Agosto de 2018, o cliente Linux do Steam agregou o projecto Wine para permitir a execução de jogos exclusivos do Windows em sistemas Linux.
    Para este efeito criou-se um fork do Wine (Proton) com patches específicos para optimizar a execução detes jogos, como o esync para optimizar a emulação do DirectX 9 a 11 via OpenGL, e comunicação entre threads.
    Foi integrado (na versão 3.16) alguns patches do Wine Staging para que certos jogos com determinados DRM como o Denuvo funcionassem correctamente.
    Outras das modificações de relevo foi a integração do suporte ao Vulkan API (wine-vulkan), bem como o DXVK que é uma biblioteca de emulação do DirectX 10/11 via Vulkan, substituindo o código de emulação padrão do Wine que se baseia do OpenGL.
    A grande vantagem do DXVK em relação ao WineD3D (OpenGL) é que o Vulkan é uma API que perite multi-threading ao nível das pipelines da GPU, permitindo uma implementação mais natural do Direct3D 11 (que já era multi-threading, enquanto o OpenGL o não era).
    Existem ainda outras melhorias que podem ser consultadas a partir do site oficial:
    https://steamcommunity.com/games/221410/announcements/detail/1696055855739350561

    Para configurar o Proton (Steam Play):

    É necessário activar o Steam Beta primeiro, e para isso, a partir do menu do cliente Steam, deve-se escolher "Settings", e escolher em "Account", a opção de participar em betas. Isto fará reiniciar o Steam e instalar os componentes extra.

    Ao reiniciar o Steam, deverá aparecer a secção "Steam Play", permitindo definir a versão padrão do Proton, que actualmente é o Wine 3.16.3. Clique em "OK", e permita que o Steam seja reiniciado as vezes necessárias.

    Terminado todo o processo deve instalar as drivers gráficas mais recentes (NVidia 396.x.x, ou AMD RAVD), conforme indicado aqui:
    https://github.com/doitsujin/dxvk/wiki/Driver-support

    Mesmo com drivers beta, pode existir algum atraso na implementação das últimas funcionalidades.
    A versão mais recente do Vulkan (1.1.88) suporta os Output Streams, permitindo que o NVidia Hairworks funcionasse pela primeira vez via DXVK (0.90).
    O Proton 3.16.3 já incluiu os patches necessários, mas alguns drivers beta podem demorar vários dias ou semanas para implementar correctamente as últimas novidades.

    A regra de ouro nestre casos é que se deve ter algum critério na pressa em ter as últimas versões e patches, arriscando a ter um sistema instável, em vez de deixar assentar a poeira primeiro.

    Ultrapassado estes obstáculos, basta abrir o Steam, comprar ou instalar um jogo qualquer, que este será instalado sem mais problemas.

    Vantagens do Steam Play versus Windows Steam on Wine:

    A integração do Wine no Steam Client permite evitar ter que criar um ou mais WINEPREFIX com a versão Windows do Steam (exigindo autenticar cada um deles :002:), para instalar jogos que são exclusivos do Windows em sistemas Linux...
    Assim, basta um cliente instalado, com uma única chave de activação, que este trata de criar um WINEPREFIX exclusivo para cada título (fica dentro da pasta ~/.steam/steamapps/common/<title>/pfx), e integra os wrappers sem mais intervenção adicional. OS ficheiros do jogos ficam nas directorias habituais, enquanto a subdirectoria /pfx contêm o "drive C:" com as bibliotecas adicionais que o título necessita, pois ainda em certos casos é necessário instalar componentes extra para os jogos correrem.

    Outra da grandes vantagens, é que os frameworks do Steam DRM, do Steam VR e SteamWorks nativamente compilados para Linux, podem comunicar com o título Windows em execução via Proton, reduzindo as componentes não-nativas apenas ao mínimo necessário. Isto poderia não ser possível obter o mesmo suporte correndo o Steam Client for Windows puro sobre o Wine padrão.

    Títulos Whitelisted.

    Trata-se de uma lista testada de jogos pela Valve e pela comunidade que garantem que os títulos Windows-only são compatíveis pelo Steam Play. Nestes casos, basta esclher o jogo, que este é instalado e executado como se fosse um título nativo, sem que ocorra complicações. :D

    Dois jogos como exemplo, de que certos jogos exigem configurações especiais :joker:

    São os jogos Assassin's Creed Director Cut, e o Assassin's Creed Odyssey 8|

    Depois de jogar o primeiro via Wine, do qual já vai algum tempo, como uma performance um pouco má (só suportava o DirectX 9, via OpenGL), decidi tentar jogar no modo DirectX 10 (que foi mais experimental, já que no AC II só suportava o DX9!), uma vez que queria usar o DXVK.

    O DXVK emula o DirectX 10, fazendo o callback para o DirectX11, e depois aplica a implementação via Vulkan ao nível dos drivers da GPU.

    A instalação é feita sem problemas, e corre até os Regdists sem falhas (mesmo que não dé em nada, devido à protecção de ficheiros do WINEPREFIX). O título é activado, e mostra a janela de registo, que pode ser ignorada ("Never":lol:).
    O jogo corre (!) até ao final do vídeo que fica com um ecrã preto... :facepalm:
    Deve-se fazer Alt+Tab ou Ctrl+Alt+F1/F7 para tentar mudar a janela e matar o jogo.

    O problema está explicado na página do DXVK. O componente d3d_compiler43.dll do Wine contêm falhas e necessita de ser overrided:
    https://github.com/doitsujin/dxvk/issues/551

    Pode usar o winetricks e o protontricks para instalar o dll em falta (o argumento 15100 é o SteamID do jogo AC Director Cut):
    $ python3 protontricks 15100 d3dcompiler_43

    Editando o launcher do jogo pode-se acrescentar o argumento:
    DXVK_HUD=1 %command%
    Para ter alguma informação sobre o framerate, e as versões do Vulkan activas. (perfeito para saber resolver eventuais problemas!)

    Ainda assim possui um bug estranho que acontece com o menu de saída (até indicado na página acima), do qual o último terço do ecrã está cortado, exigindo alguma tentativa e erro para acertar o botão "Exit"), do qual é um problema da NVidia... :lol:
    [NVidia 970 GTX é a minha placa de vídeo.]

    Reiniciando o Steam, o jogo está jogável, tendo em atenção ao bug do menu de saída.
    A diferença é que antes jogava a 40 fps (DX9, emulado por OpenGL) nas situações favoráveis, caindo para menos de metade no meio da confusão.
    Agora... Atinge os 200 fps :002::002::002:, e somente os casos críticos poderia cair para menos de 100 fps !!

    E o Assassin's Creed Odyssey ?


    Neste jogo exige que tenha o computador com os drivers Vulkan, ou não terá DXVK, muito menos um jogo fluído, se é que corra mesmo !!!
    Muitos títulos Direct3D 11 via Proton, ou mesmo via Wine, não funcionam com a emulação via OpenGL.
    A falta de multithreading no pipeline gráfico acaba por crashar o jogo, ou ter uma performance horrível.

    Este jogo usa o UPlay, e após várias tentativas, descobrou-se que muitos títulos da Ubisoft não funcionavam por causa das bibliotecas criptográficas do Steam estarem desactualizadas :002:

    Para resolver o problema deve-se instalar a versão de 32-bits do GNUTLS mais actualizada possível (as distribuições comuns fazem isso), e depois aplicar os seguintes symlinks:
    $ sudo ln -s /usr/lib/x86_64-linux-gnu/libgnutls.so.30 ~/.steam/ubuntu12_32/steam-runtime/pinned_libs_64/libgnutls.so.26
    $ sudo ln -s /usr/lib/i386-linux-gnu/libgnutls.so.30 ~/.steam/ubuntu12_32/steam-runtime/pinned_libs_32/libgnutls.so.26

    Atenção que deve adaptar as linhas para cada distribuição! :005:


    E deve usar a versão Proton 3.16.1 ou superior, por causa dos patches necessários para usar o UPlay.


    Terminado este passo, basta instalar o jogo e correr. O UPlay deve-se instalar sozinho, do qual este ainda instalar o Steam Client for Windows em muitos casos, embora não seja tão grave nesse ponto.
    (deixa o UPlay instalar o que quer, uma vez que terá que fazer a activação on-line).

    Ultrapassado este problema, o jogo deverá correr automaticamente, assim que clicar em "Play", sem que seja mais problemas.

    A nível de performance ronda os 30 a 40 fps com as definições High, podendo ultrapassar os 60 fps. Ainda existe espaço para nas versões do DxVK melhorar a performance e o framerate, mas deve-se ter em atenção que o suporte à criptografia no Wine não pode ser negligenciado, como se comprova neste exemplo.
    https://github.com/ValveSoftware/Proton/issues/1757
     
  3. jfmc00hot

    jfmc00hot Power Member

    Existe algum site com lista actualizada dos jogos compatíveis?
     
  4. Arucard1983

    Arucard1983 Power Member

    Após um período experimental, já temos um site condigno sobre a compatibilidade dos jogos com o Proton:

    https://www.protondb.com/
     
  5. Arucard1983

    Arucard1983 Power Member

    Por minha parte aproveitei a promoção do Halloween para comprar o TT Isle of Man, por metade do preço... :004:

    E este jogo que usa o DirectX 11 corre sem espinhas (a 60 fps sólidos a 1080p!) via Proton! :004:

    Naturalmente que confirmei que usa o DXVK para emular o DX11...
     
  6. Arucard1983

    Arucard1983 Power Member

    Mesmo com o Proton existem jogos que é mais prático usar o Lutris, que este instala versões especiais do Wine, o DXVK, e a versão Windows do Steam.
    O exemplo mais clássico são os jogos Assassin's Creed II, Brotherhood, Revelations e III.
    Os jogos da saga Ezio entram em parafuso com o Proton e a Steam com a CD Key e o UPlay da Ubisoft. Usando o Lutris, e arrancando o runner Steam manualmente consegue-se instalar os jogos, activar as keys pelo UPlay e jogar sem problemas alguns.

    Já o Assassin's Creed III que foi verdadeiramente o primeiro jogo optimizado para o DirectX 11 (Reparei que o AC Revelations suporta o DX11, e agora com o DXVK arranca neste modo.), requer que seja instalado usando o script do jogo no repositório do Lutris, e arranque directamente pelo atalho. Por algum motivo, quando se arranca pelo atalho do Lutris, o Assassin's Creed III inicia o Steam e o UPlay minimizados, acabando por arrancar o jogo correctamente (e com uma fluídez que até assusta!).
    Se abrir o Steam directamente, e carregar em Play, o jogo trava com a imagem de aviso de que o jogo foi feito com uma equipa multidisciplinar, e etc... (Acabando por fechar...)
     

Partilhar esta Página