Proiectul Wine a lansat Vkd3d 1.2 cu implementarea Direct3D 12

Proiectul Wine a publicat lansarea pachetului vkd3d 1.2 cu implementarea Direct3D 12, care funcționează prin translația apelurilor în API-ul grafic Vulkan. Pachetul include biblioteci libvkd3d cu implementarea Direct3D 12, libvkd3d-shader cu translatorul de modele 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 portarea glxgears pe Direct3D 12. Codul proiectului se răspândește sub licența LGPLv2.1.

Biblioteca libvkd3d susține oferă majoritatea funcționalităților Direct3D 12, inclusiv instrumente pentru grafică și calcul, cozi și liste de comenzi, descrieri și descrieri de heap, semnături rădăcină, acces neordonat, Sampler-uri, semnături de comenzi, constante rădăcină, redare indirectă, metode Clear*() și Copy*().

În libvkd3d-shader a fost implementată traducerea bytecode-ului pentru shader-urile de model 4 și 5 într-o reprezentare intermediară SPIR-V. Sunt suportate shader-uri de vârf, pixel, teselare, calcul și geometrie simplă, serializarea și deserializarea semnăturii rădăcină. Din instrucțiunile shader-ului sunt implementate operațiile aritmetice, atomice și bitwise, operatorii de comparare și controlul fluxului de date, instrucțiile sample, gather și load, operațiile de acces nesortat (UAV, Unordered Access View).

Printre cele mai semnificative inovații în Vkd3d 1.2 se remarcă:

  • Disponibilitatea bibliotecii libvkd3d-shader pentru utilizare în proiecte externe.
  • Suport pentru shader-e de teselare.
  • Suport pentru transformarea, serializarea și deserializarea semnăturilor rădăcină (vkd3d_serialize_versioned_root_signature() și vkd3d_create_versioned_root_signature_deserializer()).
  • Suport pentru fluxuri de date.
  • Implementarea multor funcționalități Direct3D 12 anterior indisponibile, inclusiv suport pentru multiple sampling, rezervarea resurselor,
    redare indirectă indexată, redare a adâncimii fără shader-e pentru pixele, acces simultan la resurse din diferite cozi de comenzi, vederi nule (Null-views).
  • Au fost adăugate variabile de mediu: VKD3D_CONFIG pentru setarea opțiunilor de modificare a comportamentului libvkd3d și VKD3D_VULKAN_DEVICE pentru a suprascrie dispozitivul pentru API-ul Vulkan.
  • A fost adăugat suport pentru instrucțiunile de shader bufinfo,
    eval_centroid,
    eval_sample_index,
    ld2ms,
    sample_b,
    sample_d,
    sample_info,
    samplepos.

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