Wine-projektet udgivelse af pakken med implementeringen af Direct3D 12, der fungerer gennem oversættelse af kald til grafisk API Vulkan. Pakken inkluderer bibliotekerne libvkd3d med implementeringer af Direct3D 12, libvkd3d-shader med oversætteren til shader modeller 4 og 5, samt libvkd3d-utils med funktioner til at forenkle porteringen af Direct3D 12 applikationer, samt et sæt demonstrations eksempler, herunder porten af glxgears til Direct3D 12. Projektkode under LGPLv2.1-licensen.
Biblioteket libvkd3d omfatter størstedelen af funktionerne i Direct3D 12, herunder midler til grafik og beregning, køer og kommandolister, deskriptorer og bunke-deskriptorer, rodsignaturer, usorteret adgang, Sampler, kommandosignaturer, rodkonstanter, indirekte rendering, metoderne Clear*() og Copy*().
I libvkd3d-shader er der implementeret oversættelse af bytekode fra shader-modellerne 4 og 5 til det intermediate repræsentation SPIR-V. Der understøttes vertex-, pixel-, tesselerings-, compute- og simple geometriske shaders, serialisering og deserialisering af rod-signaturer. Af shader-instruktionerne er der implementeret aritmetiske, atomare og bitoperationer, sammenligningsoperationer og dataflow-kontrol, sample-, gather- og load-instruktioner samt uordnede adgangsoperationer (UAV, Unordered Access View).
Blandt de mest betydningsfulde i Vkd3d 1.2 fremhæves:
- Klarheden af biblioteket libvkd3d-shader til brug i tredjepartsprojekter.
- Support for tessellations-shaders.
- Support for konvertering, serialisering og deserialisering af rod signaturer (vkd3d_serialize_versioned_root_signature() og vkd3d_create_versioned_root_signature_deserializer()).
- Support for streaming.
- Implementeringen af mange tidligere utilgængelige funktioner i Direct3D 12, herunder støtte til multisampling, ressource reservering,
indirekte indekseret rendering, dybde rendering uden pixel shaders, simultan adgang til ressourcer fra forskellige kommandokøer, null views. - Tilføjede miljøvariabler: VKD3D_CONFIG til indstilling af muligheder for at ændre opførelsen af libvkd3d og VKD3D_VULKAN_DEVICE til at overskrive enheden for Vulkan API.
- Tilføjet support for shader instruktioner bufinfo,
eval_centroid,
eval_sample_index,
ld2ms,
sample_b,
sample_d,
sample_info,
samplepos.
Kilde: opennet.ru
