Proiectul Wine a publicat Vkd3d 1.7 cu implementarea Direct3D 12

Proiectul Wine a publicat versiunea pachetului vkd3d 1.7 cu implementarea Direct3D 12, funcționând prin traducerea apelurilor în API-ul grafic Vulkan. Pachetul include biblioteci libvkd3d cu implementarea Direct3D 12, libvkd3d-shader cu traducătorul pentru modelele de shader 4 și 5 și libvkd3d-utils cu funcții pentru simplificarea portării aplicațiilor Direct3D 12, precum și un set de exemple demonstrative, inclusiv portul glxgears pe Direct3D 12. Codul proiectului este distribuit sub licența LGPLv2.1.

Biblioteca libvkd3d suportă majoritatea funcționalităților Direct3D 12, inclusiv instrumente pentru grafică și calcul, cozi și liste de comenzi, descriptorii și descriptorii de heap, semnăturile rădăcină, accesul nesortat, Sampler-e, semnăturile comenzii, constantele rădăcină, redarea indirectă, metodele Clear*() și Copy*(). În libvkd3d-shader este implementată traducerea codului byte pentru modelele de shader 4 și 5 în reprezentarea intermediară SPIR-V. Sunt suportate shader-ele de vârf, pe pixel, tesselație, calcul și geometrie simplă, serializarea și deserializarea semnăturii rădăcină. Dintre instrucțiunile shader-ului, sunt implementate operații aritmetice, atomice și bitwise, operatori de comparație și control al fluxului de date, instrucțiuni sample, gather și load, operații de acces nesortat (UAV, Unordered Access View).

În noua versiune:

  • A fost continuată lucrările de îmbunătățire a compilatorului de shaderi în limbajul HLSL (High-Level Shader Language):
    • A fost adăugată capacitatea de a apela funcții personalizate și de a folosi tablouri ca parametrii ai funcțiilor personalizate.
    • A fost adăugat suport pentru parametrii SV_DispatchThreadID, SV_GroupID și SV_GroupThreadID.
    • Au fost adăugate funcții încorporate all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt(), step(), transpose().
    • A fost adăugat suport inițial pentru tipuri de precizie redusă cu virgulă mobilă, cum ar fi 'min16float'.
  • A fost îmbunătățit semnificativ suportul pentru profilele modelului de shader Direct3D 1/2/3.
  • A fost adăugat API public pentru analiză (vkd3d_shader_parse_dxbc) și serializare (vkd3d_shader_serialize_dxbc) a datelor binare DXBC.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster