Le projet Wine a publié Vkd3d 1.13 avec la réalisation de Direct3D 12

Le projet Wine a publié la version 1.13 du package vkd3d avec une implémentation de Direct3D 12, fonctionnant par la traduction d'appels dans l'API graphique Vulkan. Le package comprend les bibliothèques libvkd3d avec l'implémentation de Direct3D 12, libvkd3d-shader avec le translateur pour les modèles de shaders 4 et 5 et libvkd3d-utils avec des fonctions pour faciliter le portage d'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 distribué sous la licence LGPLv2.1.

La bibliothèque libvkd3d prend en charge la majorité des fonctionnalités de Direct3D 12, y compris les outils pour la graphique et le calcul, les files d'attente et les listes de commandes, les descripteurs et les descripteurs d'allocations, les signatures racines, un accès désordonné, des échantillonneurs, les signatures de commandes, des constantes racines, le rendu indirect, les méthodes Clear*() et Copy*(). Dans libvkd3d-shader, la traduction du bytecode des modèles de shaders en représentation intermédiaire SPIR-V est mise en œuvre. Les shaders de vertex, pixel, tessellation, calcul, et simples géométriques sont pris en charge, ainsi que la sérialisation et la désérialisation de la signature racine. Parmi les instructions de shaders, des opérations arithmétiques, atomiques et logiques, des opérateurs de comparaison et de contrôle aléatoire des flux de données, les instructions sample, gather et load, ainsi que les opérations d'accès désordonné (UAV, Unordered Access View) sont mises en œuvre.

Dans la nouvelle version :

  • Le compilateur HLSL a ajouté la prise en charge du dépliage de boucle (loop unrolling, une optimisation qui remplace les opérations cycliques par plusieurs copies consécutives de code pour une utilisation plus efficace du cache processeur et une réduction des branches).
  • La prise en charge du compilateur d'effets pour certains objets d'état de la quatrième version des shaders a été ajoutée.
  • La prise en charge des types de la quatrième version des shaders BlendState, ComputeShader, DomainShader, GeometryShader, HullShader, DepthStencilState et RasterizerState a été garantie, ainsi que des fonctions OMSetRenderTargets(), SetBlendState(), SetComputeShader(), SetDomainShader(), SetGeometryShader(), SetHullShader(), SetPixelShader(), SetVertexShader(), SetDepthStencilState() et SetRasterizerState().
  • Le compilateur de shaders prend en charge l'analyse et le stockage de valeurs d'initialisation dans divers formats pour les variables globales, les paramètres de fonctions et les annotations.
  • La prise en charge de l'espace de registre du modèle de shader 5.1 a été ajoutée.
  • Des fonctions intégrées telles que tex1D(), tex2D(), tex3D(), texCUBE(), asint(), f16tof32(), faceforward(), GetRenderTargetSampleCount(), rcp(), tex2Dbias(), tex1Dgrad(), tex2Dgrad(), tex3Dgrad() et texCUBEgrad() ont été mises en œuvre.
  • Une interface ID3D12CommandList6 a été ajoutée à libvkd3d, permettant la création de textures dont la compression se fait niveau de blocs individuels (par exemple, des blocs de 4×4 pixels sont compressés séparément).
  • Ajout du support de la structure vkd3d_shader_parameter_info et des paramètres VKD3D_SHADER_PARAMETER_DATA_TYPE_FLOAT32, VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_FUNC, VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_REF, VKD3D_SHADER_PARAMETER_NAME_FLAT_INTERPOLATION et VKD3D_SHADER_PARAMETER_TYPE_BUFFER.

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