Vinprojektet har släppt Vkd3d 1.2 med Direct3D 12-implementering

Vinprojekt publicerade paketsläpp vkd3d 1.2 med en Direct3D 12-implementering som fungerar genom att sända anrop till Vulkans grafik-API. Paketet innehåller libvkd3d-bibliotek med implementeringar av Direct3D 12, libvkd3d-shader med en översättare av shader-modellerna 4 och 5 och libvkd3d-utils med funktioner för att förenkla porteringen av Direct3D 12-applikationer, samt en uppsättning demo-exempel, inklusive en port av glxgears till Direct3D 12. Projektkod levererad av licensierad under LGPLv2.1.

libvkd3d bibliotek stöder De flesta av funktionerna i Direct3D 12, inklusive grafik och datorfaciliteter, köer och kommandolistor, handtag och heap-handtag, rotsignaturer, out-of-order access, Samplers, kommandosignaturer, rotkonstanter, indirekt rendering, Clear*()-metoder och Kopiera*().

I libvkd3d-shader implementeras översättningen av bytekod för shadermodellerna 4 och 5 till en mellanliggande SPIR-V-representation. Vertex, pixel, tessellation, beräkning och enkel geometriskuggning, rotsignaturserialisering och deserialisering stöds. Shader-instruktioner inkluderar aritmetiska, atom- och bitoperationer, jämförelse- och dataflödeskontrolloperatörer, sampla, samla och ladda instruktioner, oordnade åtkomstoperationer (UAV, Unordered Access View).

Bland de mest betydande innovationer i Vkd3d 1.2 är följande markerade:

  • Biblioteket libvkd3d-shader är redo att användas i tredjepartsprojekt.
  • Tessellation shader stöd.
  • Stöd för konvertering, serialisering och deserialisering av rotsignaturer (vkd3d_serialize_versioned_root_signature() och vkd3d_create_versioned_root_signature_deserializer()).
  • Stöd för strömmande utdata.
  • Implementering av många tidigare otillgängliga Direct3D 12-funktioner, inklusive stöd för multisampling, resursreservation,
    indirekt indexerad rendering, djuprendering utan pixelshaders, samtidig åtkomst till resurser från olika kommandoköer, Null-vyer.

  • Tillagda miljövariabler: VKD3D_CONFIG för att ställa in alternativ för att ändra libvkd3d-beteende och VKD3D_VULKAN_DEVICE för att åsidosätta enheten för Vulkan API.
  • Lade till stöd för buffinfo shader instruktioner,
    eval_centroid,
    eval_sample_index,
    ld2ms,
    sample_b,
    sample_d,
    sample_info,
    provpos.

Källa: opennet.ru

Lägg en kommentar