Vinprojektet har frigivet Vkd3d 1.4 med Direct3D 12 implementering

Wine-projektet har udgivet udgivelsen af ​​vkd3d 1.4-pakken med en implementering af Direct3D 12, der fungerer gennem broadcast-opkald til Vulkan graphics API. Pakken indeholder libvkd3d-biblioteker med implementeringer af Direct3D 12, libvkd3d-shader med en oversætter af shader-modeller 4 og 5 og libvkd3d-utils med funktioner til at forenkle porteringen af ​​Direct3D 12-applikationer, samt et sæt demo-eksempler, inklusive en port af glxgears til Direct3D 12. Projektkoden er distribueret i licens under LGPLv2.1.

Libvkd3d-biblioteket understøtter de fleste Direct3D 12-funktioner, inklusive grafik- og computerfaciliteter, køer og kommandolister, håndtag og heap-håndtag, rodsignaturer, out-of-order adgang, samplere, kommandosignaturer, rodkonstanter, indirekte gengivelse, Clear-metoder *( ) og Kopi*().

I libvkd3d-shader implementeres oversættelsen af ​​bytekode for shader-modeller 4 og 5 til en mellemliggende SPIR-V-repræsentation. Understøtter vertex, pixel, tessellation, beregning og simpel geometri shaders, rodsignatur-serialisering og deserialisering. Shader-instruktioner omfatter aritmetiske, atom- og bitoperationer, sammenlignings- og dataflowkontroloperatører, sample, indsamle og indlæse instruktioner, uordnede adgangsoperationer (UAV, Unordered Access View).

I den nye version:

  • Der er foretaget adskillige forbedringer til HLSL (High-Level Shader Language) shader-kompileren, der er leveret siden DirectX 9.0.
  • En ny implementering af Descriptor Heap er blevet foreslået ved hjælp af Vulkan-udvidelsen VK_EXT_descriptor_indexing.
  • Tilføjet en ny hegnsimplementering baseret på Vulkan-udvidelsen K_KHR_timeline_semaphore.

Kilde: opennet.ru

Tilføj en kommentar