CodeWeavers aide les jeux Windows DirectX 12 à fonctionner sous Linux

CodeWeavers, les développeurs de CrossOver, travaillent sur des améliorations de DirectX 12 dans les couches de compatibilité CodeWeavers et Wine.

CodeWeavers Croisement est l'un des moyens les plus populaires d'exécuter des applications Windows sur d'autres systèmes d'exploitation. Il combine l'excellent travail de l'open source Projet vin (dont les développeurs de CrossOver contribuent au code) avec une interface et un frontal plus faciles à utiliser. CodeWeavers a publié CrossOver 21 de retour en août, et maintenant la société a partagé des détails sur son travail visant à apporter une prise en charge des jeux modernes sur Linux et Mac.

De nombreux jeux Windows récents (et autres applications gourmandes en graphiques) s'appuient sur DirectX 12, la dernière version de Bibliothèque graphique DirectX de Microsoft, qui utilise des API de niveau inférieur pour obtenir des performances plus rapides. DirectX n'est disponible que sur Windows (et les consoles Xbox), donc la couche de compatibilité Wine utilise le VKD3D bibliothèque graphique pour exécuter des appels Direct3D sur Vulkan (qui est disponible sur Linux, Windows et autres plates-formes). La bibliothèque Vkd3d est

principalement développé par Valve Software pour son Couche de compatibilité proton, et les progrès rapides de VKD3D sont la principale raison pour laquelle tant de jeux Windows sont désormais jouables sous Linux.

Même si CrossOver inclut déjà VKD3D, CrossOver ne prend pas officiellement en charge les jeux DirectX 12 tandis que ses développeurs découvrent quelques problèmes de performances, selon un nouveau rapport. article de blog:

CrossOver utilise VKD3D pour exécuter des jeux DirectX 12. VKD3D est une bibliothèque graphique 3D construite sur Vulcan. Actuellement, de nombreux travaux sont en cours pour améliorer les performances de VKD3D. Avec l'aide du Vulkan extension d'indexation de descripteur, qui permet des fonctionnalités similaires aux tas de descripteurs DirectX 12, les descripteurs Vulkan sont écrits moins souvent et beaucoup moins de mémoire GPU est utilisée. En conséquence, VKD3D peut prendre en charge des jeux qui utilisent suffisamment de descripteurs pour nécessiter des ressources du matériel de niveau 2 et de niveau 3.

CrossOver prévoit de commencer officiellement à prendre en charge les jeux et applications DirectX 12 sur Linux en 2022, avec la future version de CrossOver 22. Cependant, la société ne sait pas exactement quand VKD3D sera fonctionnel sur Mac. Apple ne prend pas du tout en charge Vulkan sur macOS (ou iOS), demandant plutôt aux développeurs d'utiliser son Bibliothèque graphique métal. C'est un problème pour CrossOver, comme le dit le billet de blog :

En général, Metal effectue la tessellation différemment et il lui manque des shaders de géométrie et des retours de transformation. Spécifique à DirectX 12 et Metal, il existe un problème de limites de ressources. Généralement, les jeux doivent accéder à au moins un million de vues de ressources de shader (SRV). L’accès à autant de SRV nécessite une liaison de ressources au niveau 2. Metal ne prend en charge qu'environ 500 000 ressources par tampon d'argument, la liaison de ressources de niveau 2 n'est donc pas possible. La limite d'un demi-million de métal est suffisante pour l'indexation des descripteurs Vulkan, mais pas pour D3D12. Cette limitation signifie que CrossOver Mac ne peut pas prendre en charge la liaison de niveau 2 et que par conséquent, de nombreux jeux DirectX 12 ne fonctionneront pas.

Malgré ces défis, CodeWeavers espère que les jeux et applications DirectX 12 pourront être fonctionnels sur Mac avec la future mise à jour CrossOver 23. Les nouvelles versions majeures de CrossOver apparaissent généralement chaque année, ce qui se produirait probablement en 2023.

Même si vous n'utilisez pas CrossOver, la plupart des améliorations de compatibilité développées par CodeWeavers sont soumises au projet Wine. Cela signifie que le travail de l'entreprise pourrait contribuer à améliorer les jeux Windows sur Lutris, le Console Steam Deck, PlayOnLinux et d'autres projets basés sur Wine. Cela étant dit, une fois la prise en charge complète de DirectX 12 arrivée, CrossOver pourrait être un choix intéressant pour jouer à des jeux Windows sur Linux en dehors de Steam.