Valve lança Proton 4.11, suíte para rodar jogos do Windows no Linux

Empresa de válvulas publicado novo ramo do projeto Próton 4.11, baseado nos desenvolvimentos do projeto Wine e que visa garantir o lançamento de aplicações de jogos criadas para Windows e apresentadas no catálogo Steam no Linux. Desenvolvimentos de projetos espalhar sob licença BSD. À medida que ficam prontas, as alterações desenvolvidas no Proton são transferidas para o Wine original e projetos relacionados, como DXVK e vkd3d.

O Proton permite que você execute diretamente aplicativos de jogos somente para Windows no cliente Steam Linux. O pacote inclui uma implementação de DirectX 10/11 (baseado em Dxvk) e 12 (com base em vkd3d), trabalhando por meio de chamadas DirectX para a API Vulkan, fornece suporte aprimorado para controladores de jogos e a capacidade de usar o modo de tela inteira, independentemente das resoluções de tela suportadas nos jogos. Comparado ao Wine original, o desempenho dos jogos multithread aumentou significativamente graças ao uso de patches "esync"(Sincronização Eventfd) ou"futex/fsync".

O principal mudanças no Proton 4.11:

  • Foi realizada a sincronização com a base de código Wine 4.11, da qual foram transferidas mais de 3300 alterações (o branch anterior era baseado no Wine 4.2). 154 patches do Proton 4.2 foram movidos para o upstream e agora estão incluídos no pacote principal do Wine;
  • Adicionado suporte experimental para primitivas de sincronização baseadas na chamada de sistema futex(), que reduz a carga da CPU em comparação com esync. Além disso, a nova implementação resolve problemas com a necessidade de utilização configurações especiais para esync e possível esgotamento dos descritores de arquivos disponíveis.

    A essência do trabalho que está sendo feito é expandir a funcionalidade da chamada de sistema futex() padrão no kernel Linux com os recursos necessários para a sincronização ideal do pool de threads. Patches com suporte para o sinalizador FUTEX_WAIT_MULTIPLE necessário para Proton já estão transferido para inclusão no kernel principal do Linux e glibc. As mudanças preparadas ainda não estão incluídas no kernel principal, então no momento é necessário estabelecer um kernel especial com suporte para essas primitivas;

    Valve lança Proton 4.11, suíte para rodar jogos do Windows no Linux

  • Intercamada Dxvk (implementação de DXGI, Direct3D 10 e Direct3D 11 em cima da API Vulkan) atualizado para versão 1.3E D9VK (uma implementação experimental do Direct3D 9 em cima do Vulkan) até a versão 0.13f. Para habilitar o suporte D9VK no Proton, use o sinalizador PROTON_USE_D9VK;
  • A taxa de atualização atual do monitor é transmitida aos jogos;
  • Correções foram feitas para lidar com o foco do mouse e gerenciamento de janelas;
  • Corrigido atraso de entrada e problemas de suporte à vibração de joysticks que ocorrem em alguns jogos, especialmente em jogos baseados no motor Unity;
  • Adicionado suporte para a versão mais recente do OpenVR SDK;
  • Os componentes FAudio com implementação de bibliotecas de som DirectX (API XAudio2, X3DAudio, XAPO e XACT3) foram atualizados para a versão 19.07;
  • Problemas com o subsistema de rede em jogos no GameMaker foram resolvidos;
  • Muitos módulos do Wine agora são construídos como arquivos do Windows PE em vez de bibliotecas do Linux. À medida que o trabalho avança nesta área, o uso de PE ajudará alguns sistemas DRM e anti-cheat. Se você usar compilações personalizadas do Proton, provavelmente precisará recriar a máquina virtual Vagrant para compilar os arquivos PE.

Antes dos patches da Valve serem adotados no kernel principal do Linux, usar futex() em vez de esync requer a instalação de um kernel especial com suporte para o pool de sincronização de threads implementado em um conjunto de patches fsync. Para Arch Linux já no AUR publicado pacote de kernel pronto compilado com patches fsync. No Ubuntu 18.04 e 19.04, você pode usar o PPA de kernel experimental linux-mfutex-valve (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Se você tiver um kernel com suporte a fsync, ao executar o Proton 4.11, o console exibirá a mensagem “fsync: instalado e funcionando”. Você pode forçar o desligamento do fsync usando o sinalizador PROTON_NO_FSYNC=1.

Fonte: opennet.ru

Adicionar um comentário