Proiectul Wine a lansat Vkd3d 1.4 cu implementarea Direct3D 12

Proiectul Wine a publicat lansarea pachetului vkd3d 1.4 cu o implementare a Direct3D 12 care funcționează prin intermediul apelurilor de difuzare către API-ul grafic Vulkan. Pachetul include biblioteci libvkd3d cu implementări ale Direct3D 12, libvkd3d-shader cu un translator al modelelor shader 4 și 5 și libvkd3d-utils cu funcții pentru simplificarea portarii aplicațiilor Direct3D 12, precum și un set de exemple demo, inclusiv un port de glxgears la Direct3D 12. Codul de proiect este distribuit sub licență LGPLv2.1.

Biblioteca libvkd3d acceptă cele mai multe caracteristici Direct3D 12, inclusiv facilități de grafică și de calcul, cozi și liste de comenzi, mânere și mânere de heap, semnături rădăcină, acces în afara ordinului, Samplere, semnături de comandă, constante rădăcină, randare indirectă, metode Clear *( ) și Copiere*().

În libvkd3d-shader, este implementată traducerea bytecode a modelelor shader 4 și 5 într-o reprezentare intermediară SPIR-V. Suportă vertex, pixel, tesselation, calcul și umbrire geometrie simplă, serializare și deserializare semnături rădăcină. Instrucțiunile shader includ operații aritmetice, atomice și pe biți, operatori de comparare și control al fluxului de date, instrucțiuni de eșantionare, colectare și încărcare, operațiuni de acces neordonat (UAV, vizualizare cu acces neordonat).

În noua versiune:

  • Au fost aduse numeroase îmbunătățiri la compilatorul de shader HLSL (High-Level Shader Language) furnizat începând cu DirectX 9.0.
  • A fost propusă o nouă implementare a Descriptor Heap, folosind extensia Vulkan VK_EXT_descriptor_indexing.
  • S-a adăugat o nouă implementare de gard bazată pe extensia Vulkan K_KHR_timeline_semaphore.

Sursa: opennet.ru

Adauga un comentariu