Wine-projektet har udgivet udgivelsen af vkd3d 1.7-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 beregningsfaciliteter, 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:
- Arbejdet fortsatte med at forbedre shader-kompileren i HLSL (High-Level Shader Language):
- Tilføjet muligheden for at kalde brugerdefinerede funktioner og bruge arrays som parametre til brugerdefinerede funktioner.
- Tilføjet understøttelse af parametrene SV_DispatchThreadID, SV_GroupID og SV_GroupThreadID.
- Tilføjede indbyggede funktioner all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt () , step(), transponere().
- Tilføjet startstøtte til flydende kommatyper med lav præcision såsom "min16float".
- Væsentlig forbedret understøttelse af Direct3D 1/2/3 shader-modelprofiler.
- Tilføjet offentlig API til parsing (vkd3d_shader_parse_dxbc) og serialisering (vkd3d_shader_serialize_dxbc) af DXBC binære data.
Kilde: opennet.ru