Sortie de D9VK 0.40, implémentation de Direct3D 9 sur Vulkan

A eu lieu lancement du projet D9VK 0.40, fournissant une implémentation de Direct3D 9, fonctionnant via la traduction des appels dans l'API graphique Vulkan. Le projet est basé sur le code de projet DXVK, qui a été étendu avec le support de Direct3D 9. Par rapport à l'implémentation de Direct3D 9 basée sur WineD3D, D9VK permet d'obtenir de meilleures performances, car la traduction de Direct3D 9 via OpenGL est plus lente que celle via Vulkan.

D9VK peut être utilisé pour exécuter des applications et des jeux 3D sous Linux en utilisant Wine. La plupart des jeux basés sur Direct3D 9, utilisant la 2 ou 3 version de Shader Model, sont pris en charge. Le code du projet est distribué est sous la licence libre Zlib. Pour utiliser D9VK, des pilotes prenant en charge l'API Vulkan sont nécessaires, tels que AMD RADV 18.3+, NVIDIA 415.22+, Intel ANV 19.0+ et AMDVLK.

Améliorations principales :

  • La possibilité d'utiliser plus de 4 Go de mémoire vidéo dans des applications 32 bits a été mise en œuvre, ce qui a résolu des problèmes lors de l'exécution des mods pour les jeux Skyrim et Oblivion ;
  • Le traitement asynchrone de l'affichage du résultat de rendu à l'écran (étape de présentation) a été inclus. Pour réduire les latences dans le flux principal de rendu, le traitement de l'affichage est effectué dans le fil de soumission des commandes ;
  • Des points de synchronisation superflus ont été éliminés dans le flux de commandes lors de l'extraction des données demandées ;
  • Le code pour déterminer le temps interne a été traduit pour utiliser un minuteur spécifique à la plateforme, ce qui a aidé à résoudre les problèmes de comportement incorrect du high_resolution_clock de MinGW ;
  • Le déchargement des tampons en attente MANAGED et SYSTEMMEM à l'étape avant l'exécution de PrepareDraw a été assuré, ce qui a résolu des problèmes de performance dans les jeux Risen et Legend of the Heroes: Trails of the Sky ;
  • Ajout du support de D3DTA_CONSTANT, permettant un rendu correct de l'effet de luminosité dans les jeux SpinTyres et Mudrunner ;
  • La compatibilité avec DirectX 9Ex (D3D9Ex) a été améliorée. Les spécificités du traitement de ResetEx et Reset ont été prises en compte ;
  • Un nettoyage et un refactoring du code ont été effectués ;
  • Un mappage direct des tampons WRITEONLY a été assuré, ce qui peut avoir un effet positif sur les performances et contourner une erreur dans le jeu
    Counter-Strike: Global Offensive, entraînant la poursuite de l'écriture dans le tampon après son déblocage ;
  • Une méthode a été mise en œuvre SetDialogBoxMode, permettant d'utiliser des boîtes de dialogue dans des applications en plein écran ;
  • Le support est implémenté du mélange des sommets, y compris le mélange de sommets indexés, nécessaire pour SWVP (SoftWare Vertex Processing) ;
  • Le compteur d'échantillonneur affiché sur l'image actuelle (display heads-up, HUD) a été retravaillé ;
  • Une option d3d9.dialogBoxMode a été ajoutée, que vous pouvez utiliser pour désactiver le mode plein écran.
  • Des optimisations de performance ont été apportées et des problèmes ont été résolus lors du lancement des jeux GTA: San Andreas, The Masquerade Bloodlines, Max Payne 2, The Sims 2, Silent Hunter 3, Senran Kagura Shinovi, Dungeons and Dragons, Crysis, Metal Slug X, ANGLE, Need for Speed: Carbon et Risen 1.

Il convient également de noter l'intention développeur du projet DXVK (implémentation de DXGI, Direct3D 10 et Direct3D 11 sur l'API Vulkan) pour se concentrer temporairement uniquement sur la correction des bugs, en mettant en pause l'expansion des fonctionnalités. Ce désir est causé par des inquiétudes concernant la qualité du code et la complexité de la maintenance à l'avenir. Chaque mise à jour de la branche 1.4.x entraîne des plaintes concernant des changements régressifs qui ne peuvent pas être reproduits, localisés et corrigés.

Ces problèmes nécessitent une analyse des causes de leur apparition, sinon les laisser non corrigés tout en continuant à développer des fonctionnalités pourrait aggraver la situation et rendre la maintenance cauchemardesque. Parmi les plans que le développeur DXVK envisage de mettre en œuvre avant de passer en mode correction de bugs uniquement, figure l'ajout de la prise en charge de certaines extensions utiles de Vulkan et la fusion avec les travaux du projet D9VK.

Complément : à chaud formée une version corrective de D9VK 0.40.1, dans laquelle a été corrigé la valeur par défaut pour COLOR0 dans les shaders de vertex est passée à vec4(1) et un bug a été corrigé où les bits des slots pour les sorties du shader étaient incorrectement appliqués par défaut et donc corrigés incorrectement par le backend, entraînant leur remplacement par vec4(0).

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster