Le projet Wine a publié Vkd3d 1.2 avec l'implémentation de Direct3D 12

Projet Vin publié libération du paquet vkd3d 1.2 avec une implémentation Direct3D 12 qui fonctionne via la diffusion d'appels à l'API graphique Vulkan. Le package comprend les bibliothèques libvkd3d avec des implémentations de Direct3D 12, libvkd3d-shader avec un traducteur des modèles de shader 4 et 5 et libvkd3d-utils avec des fonctions pour simplifier le portage des applications Direct3D 12, ainsi qu'un ensemble d'exemples de démonstration, y compris un portage. de glxgears vers Direct3D 12. Code du projet distribué par sous licence LGPLv2.1.

bibliothèque libvkd3d soutient le La plupart des fonctionnalités de Direct3D 12, y compris les fonctionnalités graphiques et informatiques, les files d'attente et les listes de commandes, les handles et les handles de tas, les signatures racine, l'accès dans le désordre, les échantillonneurs, les signatures de commande, les constantes racine, le rendu indirect, les méthodes Clear*() et Copier*().

Dans libvkd3d-shader, la traduction du bytecode des modèles de shader 4 et 5 en une représentation SPIR-V intermédiaire est implémentée. Les shaders de sommet, de pixel, de tessellation, de calcul et de géométrie simple, la sérialisation et la désérialisation de signature racine sont pris en charge. Les instructions de shader incluent des opérations arithmétiques, atomiques et binaires, des opérateurs de comparaison et de contrôle de flux de données, des instructions d'échantillonnage, de collecte et de chargement, des opérations d'accès non ordonnées (UAV, Unordered Access View).

Parmi les plus significatifs nouveautés dans Vkd3d 1.2, les éléments suivants sont mis en évidence :

  • La bibliothèque libvkd3d-shader est prête à être utilisée dans des projets tiers.
  • Prise en charge des shaders de tessellation.
  • Prise en charge de la conversion, de la sérialisation et de la désérialisation des signatures racine (vkd3d_serialize_versioned_root_signature() et vkd3d_create_versioned_root_signature_deserializer()).
  • Prise en charge de la sortie streaming.
  • Implémentation de nombreuses fonctionnalités Direct3D 12 auparavant indisponibles, notamment la prise en charge du multi-échantillonnage, de la réservation de ressources,
    rendu indexé indirect, rendu en profondeur sans pixel shaders, accès simultané aux ressources de différentes files d'attente de commandes, Null-views.

  • Variables d'environnement ajoutées : VKD3D_CONFIG pour définir les options permettant de modifier le comportement de libvkd3d et VKD3D_VULKAN_DEVICE pour remplacer le périphérique pour l'API Vulkan.
  • Ajout de la prise en charge des instructions du shader bufinfo,
    eval_centroïde,
    eval_sample_index,
    ld2ms,
    échantillon_b,
    échantillon_d,
    exemple_info,
    exemples de pos.

Source: opennet.ru

Ajouter un commentaire