NVK și Zink au îmbunătățit semnificativ situația cu drivere deschise pentru GPU-urile NVIDIA

Collabora a anunțat că a adus driverul deschis NVK pentru plăcile video NVIDIA gata pentru utilizarea zilnică de către o gamă largă de utilizatori și a certificat acest driver în consorțiul Khronos, care dezvoltă standarde grafice. Driverul este recunoscut ca fiind pe deplin compatibil cu specificația Vulkan 1.3, a trecut cu succes toate testele de la CTS (Khronos Conformance Test Suite) și este inclus în lista șoferilor certificați.

Certificarea a fost finalizată pentru GPU-urile NVIDIA bazate pe microarhitecturi Turing (seria GeForce GTX 16xx, RTX 20xx și Quadro RTX), Ampere (seria GeForce RTX 30xx și RTX A2000/4000/5000/6000) și Ada (GeForce RTX 4 RTX 4000, seria RTX 4). , RTX 5000xxx/6000/6.5 Ada). Testul a fost efectuat într-un mediu cu Linux kernel 6.8 și 1rc24.1. Obținerea certificatului vă permite să declarați oficial compatibilitatea cu standardele grafice și să utilizați mărcile înregistrate Khronos asociate. Modificările au fost deja acceptate în baza de cod Mesa și vor face parte din lansarea Mesa XNUMX.

Pe lângă îmbunătățirile aduse NVK, s-au înregistrat progrese semnificative în furnizarea de suport OpenGL pentru plăcile video NVIDIA. Mesa a adoptat o modificare care permite utilizarea driverului Zink pentru a oferi suport pentru OpenGL 4.6 pe sistemele cu noi serii de plăci video NVIDIA (începând cu GeForce RTX 20xx), care pot întâmpina probleme în driverul stoc Nouveau OpenGL (NVC0). Pentru a activa Zink în loc de NVC0 în Mesa 24.1, trebuie doar să setați variabila de mediu „NOUVEAU_USE_ZINK=1”.

Modificările aduse Mesa oferă, de asemenea, posibilitatea de a utiliza Zink pentru a suporta OpenGL în alte drivere, ca o rezervă pentru GPU-uri neacceptate de driverele native OpenGL ale Mesa. De exemplu, o abordare similară este deja folosită pentru a oferi suport OpenGL în driverul freedreno pentru GPU Qualcomm Adreno 700 și driverul powervr pentru GPU Imagination PowerVR bazat pe microarhitectura Rogue.

Zink oferă o implementare OpenGL pe Vulkan, care vă permite să obțineți OpenGL accelerat hardware pe dispozitive care acceptă doar API-ul Vulkan. În următoarea ediție a Mesa, driverul Zink va fi activat în mod implicit la creare. Performanța lui Zink este apropiată de performanța implementărilor native OpenGL, ceea ce face posibilă, în loc să risipească resurse pentru menținerea driverelor OpenGL individuale, să se concentreze pe suport de înaltă calitate pentru API-ul Vulkan și să implementeze suport OpenGL pe Vulkan.

Nu există încă planuri de a elimina vechiul driver Nouveau OpenGL, dar în forma sa actuală combinația Zink + NVK demonstrează performanțe mai mari în multe teste. În stadiul actual de dezvoltare, atunci când rulați multe jocuri, combinația Zink + NVK vă permite să obțineți performanțe de 60 FPS și mai mari pe modelele noi de GPU, dar există încă unele probleme nerezolvate și zone neoptimizate care vor fi rezolvate în timp.

De asemenea, este menționată munca de stabilizare a activității stratului DXVK deasupra driverului NVK, care oferă o implementare a Direct3D 9, 10 și 11, care lucrează prin traducerea apelurilor către API-ul Vulkan. Nu toate jocurile D3D11 sunt încă garantate să funcționeze cu combinația nemodificată NVK+DXVK de la Mesa, dar capabilitățile de bază sunt disponibile și defectele identificate sunt eliminate treptat. În mod similar, conexiunea NVK cu VKD3D-Proton este dezvoltată pentru a oferi suport pentru D3D12, dar starea sa este încă în urma NVK+DXVK și trebuie implementate unele capacități lipsă.

Driverul NVK a fost construit de la zero de o echipă incluzând Karol Herbst (dezvoltator Nouveau la Red Hat), David Airlie (menținător DRM la Red Hat) și Jason/Faith Ekstrand (dezvoltator Mesa activ) de la Collabora). La crearea driverului, dezvoltatorii au folosit fișiere de antet oficiale și module de nucleu deschise publicate de NVIDIA. Codul NVK a folosit unele componente de bază ale driverului Nouveau OpenGL în unele locuri, dar din cauza diferențelor de nume din fișierele de antet NVIDIA și a numelor de inginerie inversă din Nouveau, împrumutul direct al codului este dificil și în cea mai mare parte. multe lucruri au trebuit regândite și implementate de la zero.

Dezvoltarea a fost realizată cu scopul de a crea un nou driver Vulkan de referință pentru Mesa, al cărui cod ar putea fi împrumutat la crearea altor drivere. Pentru a face acest lucru, atunci când lucrează la driverul NVK, au încercat să ia în considerare toată experiența existentă în dezvoltarea driverelor Vulkan, să mențină baza de cod în formă optimă și să minimizeze transferul de cod de la alți drivere Vulkan, făcând așa cum ar trebui să fie pentru lucru optim și de înaltă calitate și nu copiați orbește cum se face în alte drivere. Driverul este deja inclus în Mesa, iar modificările necesare la API-ul driverului Nouveau DRM sunt incluse în nucleul Linux 6.6.

Sursa: opennet.ru

Adauga un comentariu