CodeWeavers está ajudando jogos DirectX 12 para Windows a rodar no Linux

CodeWeavers, os desenvolvedores do CrossOver, estão trabalhando em melhorias para DirectX 12 nas camadas de compatibilidade CodeWeavers e Wine.

CodeWeavers Cruzamento é uma das formas mais populares de executar aplicativos do Windows em outros sistemas operacionais. Ele combina o excelente trabalho do código aberto Projeto de vinho (para o qual os desenvolvedores do CrossOver contribuem com código) com uma interface e front end mais fáceis de usar. CodeWeavers lançou CrossOver 21 de volta em agosto, e agora a empresa compartilhou detalhes sobre seu trabalho para trazer suporte a jogos modernos para Linux e Mac.

Muitos jogos recentes do Windows (e outros aplicativos com gráficos pesados) dependem do DirectX 12, a versão mais recente do Biblioteca gráfica DirectX da Microsoft, que usa APIs de nível inferior para obter desempenho mais rápido. DirectX está disponível apenas no Windows (e consoles Xbox), então a camada de compatibilidade do Wine usa o VKD3D biblioteca gráfica para executar chamadas Direct3D em cima do Vulkan (que está disponível em Linux, Windows e outros plataformas). A biblioteca Vkd3d é

desenvolvido principalmente pela Valve Software por seu Camada de compatibilidade de prótons, e o rápido progresso no VKD3D é a principal razão pela qual tantos jogos do Windows agora podem ser reproduzidos no Linux.

Embora o CrossOver já inclua VKD3D, o CrossOver não suporta oficialmente jogos DirectX 12 enquanto seus desenvolvedores descobrem alguns problemas de desempenho, de acordo com um novo postagem no blog:

CrossOver usa VKD3D para rodar jogos DirectX 12. VKD3D é uma biblioteca gráfica 3D construída sobre Vulcano. Atualmente, muito trabalho está sendo feito para melhorar o desempenho do VKD3D. Com a ajuda do Vulkan extensão de indexação do descritor, que permite funcionalidade semelhante aos heaps de descritores DirectX 12, os descritores Vulkan são gravados com menos frequência e muito menos memória GPU é usada. Como resultado, o VKD3D pode suportar jogos que usam descritores suficientes para exigir recursos de hardware de nível 2 e nível 3.

CrossOver planeja começar oficialmente a oferecer suporte a jogos e aplicativos DirectX 12 no Linux em 2022, com o lançamento futuro do CrossOver 22. No entanto, a empresa não tem tanta certeza de quando o VKD3D estará funcional no Mac. A Apple não oferece suporte ao Vulkan no macOS (ou iOS), em vez disso, pede aos desenvolvedores que usem seu Biblioteca gráfica de metal. Isso é um problema para o CrossOver, como diz a postagem do blog:

Em geral, o Metal faz o mosaico de maneira diferente e não possui shaders de geometria e feedback de transformação. Específico para DirectX 12 e Metal, há um problema com limites de recursos. Geralmente, os jogos precisam de acesso a pelo menos um milhão de visualizações de recursos de shader (SRVs). O acesso a tantos SRVs requer vinculação de recursos no nível 2. O Metal suporta apenas cerca de 500.000 recursos por buffer de argumento, portanto a vinculação de recursos de nível 2 não é possível. O limite de meio milhão de metal é suficiente para a indexação do descritor Vulkan, mas não para D3D12. Esta limitação significa que o CrossOver Mac não suporta ligação Tier 2 e, portanto, muitos jogos DirectX 12 não serão executados.

Apesar desses desafios, CodeWeavers espera que jogos e aplicativos DirectX 12 possam funcionar no Mac com a futura atualização do CrossOver 23. Novas versões principais do CrossOver geralmente acontecem anualmente, então isso provavelmente será em 2023.

Mesmo que você não use o CrossOver, a maioria das melhorias de compatibilidade desenvolvidas pelo CodeWeavers são enviadas de volta ao projeto Wine. Isso significa que o trabalho da empresa pode ajudar a melhorar os jogos do Windows no Lutris, o Consola Steam Deck, PlayOnLinux e outros projetos baseados no Wine. Dito isto, assim que chegar o suporte completo ao DirectX 12, o CrossOver poderá ser uma escolha atraente para jogar jogos do Windows no Linux fora do Steam.