Le projet Wine a publié Vkd3d 1.11 avec la mise en œuvre de Direct3D 12

Le projet Wine a publié la version 1.11 du paquet vkd3d avec une implémentation de Direct3D 12, fonctionnant via la translation d'appels vers l'API graphique Vulkan. Le paquet inclut les bibliothèques libvkd3d avec l'implémentation de Direct3D 12, libvkd3d-shader avec un traducteur pour les modèles de shaders 4 et 5, et libvkd3d-utils avec des fonctions pour faciliter le portage des applications Direct3D 12, ainsi qu'un ensemble d'exemples de démonstration, y compris le port de glxgears sur Direct3D 12. Le code du projet est distribué sous la 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 :

  • Un support initial pour la compilation de l'ancien bytecode Direct3D en représentation intermédiaire de shaders SPIR-V a été ajouté.
  • Le compilateur HLSL a ajouté un support initial pour la compilation des profils d'effets Direct3D (« fx_2_0 », « fx_4_0 », « fx_4_1 » et « fx_5_0 »).
  • Un support expérimental pour la compilation du langage intermédiaire DXIL (DirectX Intermediate Language) en représentation SPIR-V et les instructions assembleur de shaders Direct3D a été ajouté.
  • Le HLSL a ajouté un support pour les profils « fx_2_0 », « fx_4_0 », « fx_4_1 » et « fx_5_0 », et implémenté les fonctions intégrées acos(), asin(), atan() et atan2(). Le support des ressources « Buffer » a été assuré.
  • Une optimisation a été ajoutée pour effectuer la mise à jour des descripteurs en mode asynchrone, ce qui peut accélérer les applications actualisant un grand nombre de descripteurs à chaque image.
  • L'utilisation des extensions Vulkan VK_EXT_mutable_descriptor_type et VK_EXT_shader_viewport_index_layer a été assurée pour améliorer l'efficacité du pool de descripteurs et accélérer le rendu des shaders de sommet et de tessellation.
  • Le support des interfaces ID3D12Device7 et ID3D12Resource2 a été ajouté. Une méthode GetResourceAllocationInfo1() a été ajoutée à l'interface ID3D12Device4.
  • Le support des interfaces D3DReflect() et D3DDisassemble() a été ajouté.
  • Des requêtes de vérification pour D3D12_FEATURE_D3D12_OPTIONS6, D3D12_FEATURE_D3D12_OPTIONS7, D3D12_FEATURE_D3D12_OPTIONS8, D3D12_FEATURE_D3D12_OPTIONS9, D3D12_FEATURE_D3D12_OPTIONS10, D3D12_FEATURE_D3D12_OPTIONS11, D3D12_FEATURE_D3D12_OPTIONS12, D3D12_FEATURE_D3D12_OPTIONS13 ont été implémentées.
  • De nouvelles options d'assemblage ont été ajoutées : VKD3D_SHADER_COMPILE_OPTION_FEATURE, VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64, VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64, VKD3D_SHADER_API_VERSION_1_10 et VKD3D_SHADER_SPIRV_EXTENSION_EXT_VIEWPORT_INDEX_LAYER.
  • Les extensions Vulkan VK_KHR_android_surface, VK_KHR_wayland_surface, VK_KHR_win32_surface, VK_KHR_xlib_surface, VK_EXT_metal_surface et VK_MVK_ios_surface ont été impliquées dans les fonctions D3D12CreateDeviceVKD3D() et D3D12CreateDevice().

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