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

Le projet Wine a publié la version du paquet vkd3d 1.7, avec une implémentation de Direct3D 12 fonctionnant via la traduction des appels vers l'API graphique Vulkan. Le paquet comprend des bibliothèques libvkd3d avec l'implémentation de Direct3D 12, libvkd3d-shader avec un traducteur pour les modèles de shaders 4 et 5, ainsi que libvkd3d-utils avec des fonctions facilitant le portage des applications Direct3D 12, ainsi qu'un ensemble d'exemples de démonstration, y compris le port de glxgears vers Direct3D 12. Le code du projet est sous licence LGPLv2.1.

La bibliothèque libvkd3d prend en charge la plupart des fonctionnalités de Direct3D 12, y compris les outils pour le graphisme et le calcul, les files d'attente et les listes de commandes, les descripteurs et les descripteurs de mémoire, les signatures racines, l'accès non ordonné, les échantillonneurs, les signatures de commandes, les constantes racines, le rendu indirect, et les méthodes Clear*() et Copy*(). Dans libvkd3d-shader, la translation du bytecode des modèles de shaders 4 et 5 en représentation intermédiaire SPIR-V a été réalisée. Les shaders vertex, pixel, tessellation, compute et géométriques simples, ainsi que la sérialisation et la désérialisation de la signature racine, sont pris en charge. Parmi les instructions de shaders, on trouve des opérations arithmétiques, atomiques et bitwise, des opérateurs de comparaison et de contrôle du flux de données, ainsi que des instructions sample, gather et load, et des opérations d'accès non ordonné (UAV, Unordered Access View).

Dans la nouvelle version :

  • Le travail sur l'amélioration du compilateur de shaders en HLSL (High-Level Shader Language) se poursuit :
    • Ajout de la possibilité d'appeler des fonctions personnalisées et d'utiliser des tableaux comme paramètres de fonctions personnalisées.
    • Ajout de la prise en charge des paramètres SV_DispatchThreadID, SV_GroupID et SV_GroupThreadID.
    • Ajout de fonctions intégrées all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt(), step(), transpose().
    • Ajout d'un support initial pour des types à faible précision comme «min16float».
  • Soutien considérablement amélioré pour les profils des modèles de shaders Direct3D 1/2/3.
  • Ajout d'une API publique pour l'analyse (vkd3d_shader_parse_dxbc) et la sérialisation (vkd3d_shader_serialize_dxbc) des données binaires DXBC.

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