vkd3d 1.2 vine cu îmbunătățiri de compatibilitate, umbrire și multe altele

Proiectul Wine a lansat o nouă versiune a pachetului vkd3d 1.2 cu o implementare Direct3D 12 care funcționează prin traducerea apelurilor către API-ul grafic Vulkan.

Această nouă versiune a vkd3d 1.2 conține diverse îmbunătățiri, dar dintre cele mai importante care se remarcă sunt disponibilitatea libvkd3d-shader ca bibliotecă publică, susținerea umbrelor teselare, precum și suportul de ieșire de flux.

Pachetulși include biblioteci libvkd3d cu implementări Direct3D 12, libvkd3d-shader cu translator de modele 4 și 5 și libvkd3d-utils cu funcții pentru simplificarea migrării aplicațiilor Direct3D 12, precum și un set de demonstrații, inclusiv portul glxgears către Direct3D 12. Codul proiectului este distribuit sub licență LGPLv2.1.

Bibliotecă libvkd3d acceptă majoritatea funcțiilor Direct3D 12, inclusiv funcții grafice și de calcul, cozi de comandă și liste, descriptori și descriptori de heap, semnături rădăcină, acces neordonat, eșantioane, semnături de comandă, constante rădăcină, reprezentare indirectă etc.

libvkd3d-shader implementează traducerea codului de octet 4 și 5 a modelelor de umbrire din reprezentarea intermediară SPIR-V. Sunt acceptate vârfuri, pixeli, teselare, umbrere geometrice simple și de calcul, serializare semnătură rădăcină și deserializare.

Instrucțiunile de umbrire includ operații aritmetice, atomice și bit, operatori de control și comparare a fluxului de date, instrucțiuni de eșantionare, colectare și încărcare, operațiuni de acces neordonat (UAV, vizualizare acces neordonat).

În etapa actuală de dezvoltare, nu toate apelurile către Direct3D 12 sunt implementate iar testele au fost efectuate în principal pe un set de aplicații demo. Versiunea nu include caracteristici în dezvoltare, cum ar fi suport pentru umbrere geometrice complexe și teselare, precum și o serie de îmbunătățiri legate de metodele de bază și umbrere Direct3D 12. Aceste caracteristici vor fi oferite într-o versiune viitoare.

Principalele caracteristici noi ale Vkd3d 1.2

Dintre cele mai importante modificări prezentate în noua versiune, este disponibilitatea bibliotecii libvkd3d-shader pentru utilizare în proiecte terțe, deoarece Au fost adăugate diverse funcții Direct3D 12, cum ar fi:

  • Eșantionare multiplă.
  • Resurse rezervate.
  • Ratele de trecere a datelor de instanță.
  • API-ul „Date private” pentru toate interfețele.
  • Asocierea componentelor vizualizării resursei Shader.
  • Extensie VK_KHR_draw_indirect_count.
  • Reprezentare predicat / condițional.
  • Redarea adâncimii fără pixel shader.
  • Decupare adâncime. Aceasta necesită extensia VK_EXT_depth_clip_enable.
  • Aruncați rasterizatorul.
  • Amestecarea sursei duale.
  • Cartarea resurselor plasate.
  • ReadFromSubresource () și WriteToSubresource () ID3D12Resource metode.
  • Acces simultan la resurse cu mai multe cozi.
  • Vedere nulă. Adică vizualizări fără o resursă subiacentă.
  • Mai multe întrebări de asistență pentru funcții.

În plus, Suplimentul pentru conversia, serializarea și deserializarea semnăturilor este de asemenea evidențiat root (vkd3d_serialize_versioned_root_signature () și vkd3d_create_versioned_root_signature_deserializer (), precum și suport pentru ieșirea în flux.

O altă schimbare care iese în evidență este implementarea variabilei de mediu: VKD3D_CONFIG pentru a seta opțiuni pentru a schimba comportamentul libvkd3d și VKD3D_VULKAN_DEVICE pentru a suprascrie dispozitivul pentru API-ul Vulkan.

Pe lângă asta a adăugat suport pentru instrucțiuni de umbrire bufinfo, eval_centroid, eval_sample_index, ld2ms, sample_b, sample_d, sample_info, samplepos și suport preliminar pentru umbrere model 5.1.

Și, de asemenea, suport pentru mediile țintă OpenGL SPIR-V. Acest lucru permite ca SPIR-V produs de libvkd3d-shader să fie utilizat cu GL_ARB_gl_spirv. Aceasta include suport pentru contoare atomice OpenGL și samplere combinate.

În cele din urmă dacă vrei să afli mai multe despre asta despre această nouă versiune, puteți verifica lista completă a modificărilor În următorul link.

Cum se instalează vkd3d pe Linux?

Pentru cei care sunt interesați să poată instala vkd3d pe sistemul lor, aceștia ar trebui să obțină codul sursă și să continue compilarea, deși, în scopuri practice sau pentru cei începători, pot încerca această bibliotecă fără eforturi mari. Pentru aceasta, trebuie doar să instaleze lutris și în configurațiile sale.

Cât despre cei interesați de compilare, aceștia trebuie să obțină codul cu:

git clone git://source.winehq.org/git/vkd3d.git/
./autogen.sh
./configure
make
../vkd3d/configure --build=i686-pc-linux-gnu "CPPFLAGS=-m32" "LDFLAGS=-m32"

În cele din urmă, straturile Vulkan trebuie activate:

export VK_INSTANCE_LAYERS=VK_LAYER_LUNARG_standard_validation
VKD3D_CONFIG=vk_debug


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.