Wine-project heeft Vkd3d 1.7 gepubliceerd met Direct3D 12-implementatie

Het Wine-project heeft een release gepubliceerd van het vkd3d 1.7-pakket met een Direct3D 12-implementatie die werkt via oproepvertaling naar de Vulkan grafische API. Het pakket bevat libvkd3d-bibliotheken met Direct3D 12-implementaties, libvkd3d-shader met shader model vertaler 4 en 5, en libvkd3d-utils met functies om het porten van Direct3D 12-applicaties te vereenvoudigen, evenals een reeks demo's, waaronder een port van glxgears naar Direct3D 12 De projectcode wordt onder licentie gedistribueerd onder LGPLv2.1.

De libvkd3d-bibliotheek ondersteunt de meeste Direct3D 12-functies, waaronder afbeeldingen en berekeningen, opdrachtwachtrijen en -lijsten, descriptors en heap-descriptors, roothandtekeningen, ongeordende toegang, Samplers, opdrachthandtekeningen, rootconstanten, indirecte weergave, Clear-methoden *() en kopiëren *(). libvkd3d-shader implementeert de vertaling van bytecode 4 en 5 van shader-modellen naar een tussenweergave van SPIR-V. Ondersteunt vertex-, pixel-, mozaïekpatroon-, reken- en eenvoudige geometrie-shaders, serialisatie en deserialisatie van rootsignaturen. Rekenkundige, atomaire en bitbewerkingen, vergelijkings- en gegevensstroombesturingsoperatoren, monster-, verzamel- en laadinstructies, ongeordende toegangsbewerkingen (UAV, Unordered Access View) worden geïmplementeerd vanuit shader-instructies.

In de nieuwe versie:

  • Er werd verder gewerkt aan het verbeteren van de HLSL-shadercompiler (High-Level Shader Language):
    • De mogelijkheid toegevoegd om door de gebruiker gedefinieerde functies aan te roepen en arrays te gebruiken als parameters van door de gebruiker gedefinieerde functies.
    • Ondersteuning toegevoegd voor de parameters SV_DispatchThreadID, SV_GroupID en SV_GroupThreadID.
    • Ingebouwde functies all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt toegevoegd () , stap(), transponeer().
    • Initiële ondersteuning toegevoegd voor drijvende-kommatypen met lage precisie, zoals "min16float".
  • Aanzienlijk verbeterde ondersteuning voor Direct3D 1/2/3 shader-modelprofielen.
  • Openbare API toegevoegd voor het parseren (vkd3d_shader_parse_dxbc) en serialiseren (vkd3d_shader_serialize_dxbc) binaire DXBC-gegevens.

Bron: opennet.ru

Voeg een reactie