Projektet Wine har offentliggjort Vkd3d 1.7 med implementering af Direct3D 12

Wine-projektet har offentliggjort version 1.7 af pakken vkd3d, som implementerer Direct3D 12, der fungerer via oversættelse af kald til grafik-API'en Vulkan. Pakken indeholder bibliotekerne libvkd3d med implementeringen af Direct3D 12, libvkd3d-shader med oversætteren til shader-modeller 4 og 5 og libvkd3d-utils med funktioner til at forenkle porteringen af Direct3D 12-applikationer samt et sæt demonstrations eksempler, inklusive porten af glxgears til Direct3D 12. Koden fra projektet distribueres under LGPLv2.1-licensen.

Biblioteket libvkd3d understøtter det meste af Direct3D 12's funktionalitet, inklusive værktøjer til grafik og beregninger, køer og kommandolister, deskriptorer og hukommelsesdeskriptorer, rodsignaturer, uordentlig adgang, samples, kommandosignaturer, rodkonstanter, indirekte rendering, Clear*() og Copy*() metoder. I libvkd3d-shader er oversættelsen af bytecode for shader-modeller version 4 og 5 implementeret til et mellemliggende repræsentation kaldet SPIR-V. Vekselvirkede, pixel-, tessellerings-, beregnings- og enkle geometriske shaders støttes, ligesom serialisering og deserialisering af rodsignaturen. Af shader-instruktioner er aritmetiske, atomiske og bitoperationer, sammenligningsoperatorer og kontrolstrømmen instruktioner realiseret, samt sample-, gather- og load-instruktioner, og operationer for uordentlig adgang (UAV, Unordered Access View).

I den nye version:

  • Arbejdet med at forbedre shader-kompilatoren i HLSL (High-Level Shader Language) fortsætter:
    • Muligheden for at kalde brugerdefinerede funktioner og bruge arrays som parametre for brugerdefinerede funktioner er blevet tilføjet.
    • Understøttelse af parametre SV_DispatchThreadID, SV_GroupID og SV_GroupThreadID er blevet tilføjet.
    • Indbyggede funktioner såsom all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt(), step() og transpose() er blevet tilføjet.
    • Indledende support for lav-præcisions flydende typer, såsom 'min16float', er blevet tilføjet.
  • Støtten til Direct3D shader-modeller 1/2/3 er betydeligt forbedret.
  • En offentlig API til parsing (vkd3d_shader_parse_dxbc) og serialisering (vkd3d_shader_serialize_dxbc) af binære DXBC-data er blevet tilføjet.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster