Het Wine-project heeft Vkd3d 1.2 uitgebracht met Direct3D 12-implementatie

Wijnproject gepubliceerd pakket release vkd3d 1.2 met een Direct3D 12-implementatie die werkt via het uitzenden van oproepen naar de Vulkan grafische API. Het pakket bevat libvkd3d-bibliotheken met implementaties van Direct3D 12, libvkd3d-shader met een vertaler van shader-modellen 4 en 5 en libvkd3d-utils met functies voor het vereenvoudigen van de portering van Direct3D 12-applicaties, evenals een reeks demovoorbeelden, waaronder een port van glxgears naar Direct3D 12. Projectcode gedistribueerd door gelicentieerd onder LGPLv2.1.

libvkd3d-bibliotheek ondersteunt de De meeste functies van Direct3D 12, inclusief grafische en computerfaciliteiten, wachtrijen en opdrachtlijsten, handvatten en heap-handvatten, roothandtekeningen, toegang buiten de juiste volgorde, Samplers, opdrachthandtekeningen, rootconstanten, indirecte weergave, Clear*()-methoden en Kopiëren*().

In libvkd3d-shader wordt de vertaling van bytecode van shader-modellen 4 en 5 naar een tussenliggende SPIR-V-representatie geïmplementeerd. Vertex-, pixel-, mozaïekpatroon-, reken- en eenvoudige geometrie-shaders, serialisatie en deserialisatie van rootsignaturen worden ondersteund. Shader-instructies omvatten rekenkundige, atomaire en bitbewerkingen, vergelijkings- en gegevensstroombesturingsoperatoren, monster-, verzamel- en laadinstructies, ongeordende toegangsbewerkingen (UAV, Unordered Access View).

Een van de belangrijkste innovaties in Vkd3d 1.2 worden de volgende punten benadrukt:

  • De libvkd3d-shader-bibliotheek is klaar voor gebruik in projecten van derden.
  • Ondersteuning voor tessellation-arcering.
  • Ondersteuning voor conversie, serialisatie en deserialisatie van roothandtekeningen (vkd3d_serialize_versioned_root_signature() en vkd3d_create_versioned_root_signature_deserializer()).
  • Ondersteuning voor streaming-uitvoer.
  • Implementatie van veel voorheen niet beschikbare Direct3D 12-functies, waaronder ondersteuning voor multisampling, resourcereservering,
    indirecte geïndexeerde weergave, diepteweergave zonder pixel shaders, gelijktijdige toegang tot bronnen uit verschillende opdrachtwachtrijen, nulweergaven.

  • Omgevingsvariabelen toegevoegd: VKD3D_CONFIG om opties in te stellen om het libvkd3d-gedrag te veranderen en VKD3D_VULKAN_DEVICE om het apparaat voor de Vulkan API te overschrijven.
  • Ondersteuning toegevoegd voor bufinfo shader-instructies,
    eval_centroid,
    eval_sample_index,
    ld2ms,
    voorbeeld_b,
    voorbeeld_d,
    voorbeeld_info,
    monsterpos.

Bron: opennet.ru

Voeg een reactie