vkd3d 1.2 est livré avec des améliorations de compatibilité, de l'ombrage et plus

Le projet Wine a publié une nouvelle version du paquet vkd3d 1.2 avec une implémentation Direct3D 12 qui fonctionne en traduisant les appels à l'API graphique Vulkan.

Cette nouvelle version de vkd3d 1.2 contient diverses améliorations, mais parmi les principaux qui ressortent, ce sont les disponibilité de libvkd3d-shader en tant que bibliothèque publique, l' support de shader tessellation, ainsi que le support de sortie de flux.

Le paquetet inclut les bibliothèques libvkd3d avec les implémentations Direct3D 12, libvkd3d-shader avec le traducteur de shader modèle 4 et 5 et libvkd3d-utils avec des fonctions pour simplifier la migration des applications Direct3D 12, ainsi qu'un ensemble de démos, y compris le port glxgears vers Direct3D 12. Le code du projet est distribué sous licence LGPLv2.1.

La bibliothèque libvkd3d prend en charge la plupart des fonctionnalités de Direct3D 12, y compris les graphiques et les fonctions de calcul, les listes de commandes et les files d'attente, les descripteurs et descripteurs de tas, les signatures racine, l'accès non ordonné, les échantillonneurs, les signatures de commande, les constantes racines, la représentation indirecte, etc.

libvkd3d-shader implémente la traduction de l'octet code 4 et 5 des motifs d'ombrage dans la représentation SPIR-V intermédiaire. Les sommets, les pixels, la tessellation, les shaders de géométrie de calcul et simples, la sérialisation de la signature racine et la désérialisation sont pris en charge.

Les instructions de shader incluent des opérations arithmétiques, atomiques et bit à bit, Opérateurs de contrôle et de comparaison de flux de données, instructions d'échantillonnage, de collecte et de chargement, opérations d'accès non ordonnées (UAV, vue d'accès non ordonné).

Au stade actuel de développement, tous les appels à Direct3D 12 ne sont pas implémentés et les tests ont été principalement réalisés sur un ensemble d'applications de démonstration. La version n'inclut pas de fonctionnalités en développement telles que la prise en charge des shaders géométriques complexes et de la tessellation, ainsi qu'un certain nombre d'améliorations liées aux méthodes de base et aux shaders Direct3D 12. Ces fonctionnalités seront proposées dans une prochaine version.

Principales nouveautés de Vkd3d 1.2

Parmi les changements les plus importants présentés dans la nouvelle version, disponibilité de la bibliothèque libvkd3d-shader pour une utilisation dans des projets tiers, car Diverses fonctions Direct3D 12 ont été ajoutées, telles que:

  • Multi-échantillonnage.
  • Ressources réservées.
  • Taux de passage des données d'instance.
  • API "Données privées" pour toutes les interfaces.
  • Mappages des composants de la vue des ressources Shader.
  • Extension VK_KHR_draw_indirect_count.
  • Représentation prédicat / conditionnelle.
  • Rendu en profondeur sans pixel shader.
  • Découpe de profondeur. Cela nécessite l'extension VK_EXT_depth_clip_enable.
  • Jeter le rastériseur.
  • Mixage double source.
  • Cartographie des ressources placées.
  • Les méthodes ID3D12Resource ReadFromSubresource () et WriteToSubresource ().
  • Accès simultané aux ressources multi-files d'attente.
  • Vues nulles. Autrement dit, des vues sans ressource sous-jacente.
  • Plusieurs autres demandes de support technique.

En plus de cela, Ajout de la prise en charge de la conversion, de la sérialisation et de la désérialisation des signatures. root (vkd3d_serialize_versioned_root_signature () et vkd3d_create_versioned_root_signature_deserializer (), ainsi que la prise en charge de la sortie en continu.

Un autre changement qui ressort est le implémentation de la variable d'environnement: VKD3D_CONFIG pour définir des options pour modifier le comportement de libvkd3d et VKD3D_VULKAN_DEVICE pour remplacer le périphérique pour l'API Vulkan.

En plus que prise en charge supplémentaire des instructions d'ombrage bufinfo, eval_centroid, eval_sample_index, ld2ms, sample_b, sample_d, sample_info, samplepos et un support préliminaire pour les shaders du modèle 5.1.

Et également la prise en charge des environnements cibles OpenGL SPIR-V. Cela permet à SPIR-V produit par libvkd3d-shader d'être utilisé avec GL_ARB_gl_spirv. Cela inclut la prise en charge des compteurs atomiques OpenGL et des échantillonneurs combinés.

Enfin si vous voulez en savoir plus à propos de cette nouvelle version, vous pouvez consulter la liste complète des modifications dans le lien suivant.

Comment installer vkd3d sur Linux?

Pour ceux qui souhaitent pouvoir installer vkd3d sur leur système, ils doivent obtenir le code source et procéder à la compilation, bien que pour des raisons pratiques ou pour ces débutants, ils puissent essayer cette bibliothèque sans trop d'effort. Pour cela, il leur suffit d'installer Lutris et dans ses configurations.

Quant à ceux qui s'intéressent à la compilation, ils doivent obtenir le code avec:

git clone git://source.winehq.org/git/vkd3d.git/
./autogen.sh
./configure
make
../vkd3d/configure --build=i686-pc-linux-gnu "CPPFLAGS=-m32" "LDFLAGS=-m32"

Enfin, les couches Vulkan doivent être activées:

export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
VKD3D_CONFIG=vk_debug


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.