Vinprojekt udgivet Vkd3d 1.7 med Direct3D 12 implementering

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

Tilføj en kommentar