Sortie de D9VK 0.40, implémentation de Direct3D 9 au-dessus de Vulkan

A eu lieu lancement du projet D9VK 0.40, qui fournit une implémentation Direct3D 9 qui fonctionne en traduisant les appels à l'API graphique Volcan. Le projet est basé sur la base de code du projet Extension DXVK, qui a été étendu pour prendre en charge Direct3D 9. Par rapport à l'implémentation Direct3D 9 basée sur WineD3D, D9VK obtient de meilleures performances car la traduction Direct3D 9 via OpenGL est plus lente que la traduction via Vulkan.

D9VK peut être utilisé pour exécuter des applications et des jeux 3D sous Linux à l'aide de Wine. La plupart des jeux basés sur Direct3D 9 utilisant les versions 2 ou 3 du Shader Model sont pris en charge. Code de projet distribué par sous la licence gratuite Zlib. D9VK nécessite des pilotes prenant en charge l'API Vulkan, tels que AMD RADV 18.3+, NVIDIA 415.22+, Intel ANV 19.0+ et AMDVLK.

Principales améliorations :

  • La possibilité d'utiliser plus de 4 Go de mémoire vidéo dans les applications 32 bits a été implémentée, ce qui a résolu les problèmes lors du lancement de mods pour les jeux Skyrim et Oblivion ;
  • Le traitement asynchrone d'affichage du résultat du rendu à l'écran est activé (étape de présentation). Pour réduire la latence sur le thread de rendu principal, le traitement de sortie est effectué dans le thread de soumission de commande ;
  • Suppression des points de synchronisation du flux de commandes inutiles lors de la récupération des données demandées ;
  • Le code permettant de déterminer l'heure interne a été traduit pour utiliser une minuterie spécifique à la plate-forme, ce qui a aidé à résoudre les problèmes liés au comportement incorrect de high_resolution_clock de MinGW ;
  • Le déchargement des tampons différés MANAGED et SYSTEMMEM est assuré avant l'exécution de PrepareDraw, qui a résolu les problèmes de performances dans les jeux Risen et Legend of the Heroes : Trails of the Sky ;
  • Prise en charge supplémentaire D3DTA_CONSTANTE, ce qui a permis de mettre en œuvre un rendu correct effet lumineux dans les jeux SpinTyres et Mudrunner ;
  • Compatibilité améliorée avec DirectX9Ex (D3D9Ex). Les spécificités du traitement ResetEx et Reset sont prises en compte ;
  • Code nettoyé et refactorisé ;
  • Un mappage direct des tampons WRITEONLY est fourni, ce qui peut avoir un effet positif sur les performances et contourner un bug dans le jeu.
    Counter-Strike : Global Offensive, ce qui entraîne la poursuite de l'écriture dans le tampon après son déverrouillage ;

  • Méthode implémentée DéfinirDialogBoxMode, qui vous permet d'utiliser des boîtes de dialogue dans des applications plein écran ;
  • Support mis en œuvre fusion des sommetsY compris mélange de sommets indexés, requis pour SWVP (SoftWare Vertex Processing) ;
  • Le compteur de l'échantillonneur, affiché au-dessus de l'image actuelle (affichage tête haute, HUD), a été repensé ;
  • Ajout de l'option d3d9.dialogBoxMode, qui peut être utilisée pour désactiver le travail uniquement en mode plein écran ;
  • Optimisation des performances et résolution des problèmes survenus lors du lancement des jeux GTA : San Andreas, The Masquerade Bloodlines, Max Payne 2, Les Sims 2, Silent Hunter 3, Senran Kagura Shinovi, Dungeons and Dragons, Crysis, Metal Slug X, ANGLE, Need for Vitesse : Carbone et Risen 1.

De plus, on peut noter intention développeur de projet Extension DXVK (implémentation de DXGI, Direct3D 10 et Direct3D 11 en plus de l'API Vulkan) concentrera temporairement les efforts uniquement sur les corrections de bogues, ralentissant l'expansion des fonctionnalités. Une envie similaire causé par inquiétudes concernant une diminution de la qualité de la base de code et une maintenance plus difficile à l'avenir. Chaque mise à jour de la branche 1.4.x provoque des plaintes concernant des modifications régressives qui ne peuvent pas être reproduites, localisées et corrigées.

Ces problèmes nécessitent une analyse des raisons de leur apparition, sinon les laisser non corrigés tout en continuant à augmenter les fonctionnalités ne peut qu'aggraver la situation et transformer le processus de maintenance en cauchemar. Les plans que le développeur DXVK a l'intention de mettre en œuvre avant de passer au mode de correction de bogues uniquement incluent l'ajout de la prise en charge de certaines extensions Vulkan utiles et la fusion avec les développements du projet D9VK.

Ajout : chaud sur les talons formé version corrective D9VK 0.40.1, dans laquelle fixe définissez vec4(1) sur la valeur par défaut pour COLOR0 dans les vertex shaders et corrigez un bug où les bits de l'emplacement de sortie du shader par défaut étaient incorrectement appliqués et donc incorrectement corrigés par le backend, ce qui entraînait leur remplacement par vec4(0).

Source: opennet.ru

Ajouter un commentaire