I-NVK ne-Zink zithuthukise kakhulu isimo ngabashayeli abavulekile be-NVIDIA GPUs

I-Collabora imemezele ukuthi ilethe umshayeli we-NVK ovulekile wamakhadi wevidiyo we-NVIDIA alungele ukusetshenziswa nsuku zonke ngabasebenzisi abaningi futhi iqinisekise lo mshayeli ku-Khronos consortium, ethuthukisa amazinga wehluzo. Umshayeli uqashelwa njengovumelana ngokugcwele nokucaciswa kwe-Vulkan 1.3, uphumelele zonke izivivinyo ezivela ku-CTS (Khronos Conformance Test Suite) futhi ufakiwe ohlwini lwabashayeli abaqinisekisiwe.

Ukunikezwa isitifiketi kuqediwe kuma-NVIDIA GPU asuselwa ku-Turing microarchitectures (GeForce GTX 16xx, RTX 20xx ne-Quadro RTX series), Ampere (GeForce RTX 30xx kanye ne-RTX A2000/4000/5000/6000 uchungechunge) kanye ne-Ada (GeForce RTX 4x4000x4, , RTX 5000xxx/6000/6.5 Ada). Ukuhlola kwenziwe endaweni ene-Linux kernel 6.8 kanye ne-1rc24.1. Ukuthola isitifiketi kukuvumela ukuthi umemezele ngokusemthethweni ukuhambisana namazinga wezithombe futhi usebenzise izimpawu zokuthengisa ezihlotshaniswayo ze-Khronos. Izinguquko sezamukelwe kakade ku-codebase ye-Mesa futhi zizoba yingxenye yokukhishwa kwe-Mesa XNUMX.

Ngokungeziwe ekuthuthukisweni kwe-NVK, kube nenqubekelaphambili ebalulekile ekunikezeni usekelo lwe-OpenGL lwamakhadi evidiyo e-NVIDIA. I-Mesa yamukele ushintsho oluvumela ukusetshenziswa komshayeli we-Zink ukunikeza ukusekelwa kwe-OpenGL 4.6 kumasistimu anochungechunge olusha lwamakhadi evidiyo e-NVIDIA (aqala nge-GeForce RTX 20xx), angase abe nezinkinga kumshayeli wesitoko se-Nouveau OpenGL (NVC0). Ukuze unike amandla i-Zink esikhundleni se-NVC0 ku-Mesa 24.1, vele usethe ukuhluka kwemvelo “NOUVEAU_USE_ZINK=1”.

Izinguquko ezenziwe ku-Mesa ziphinde zinikeze amandla okusebenzisa i-Zink ukusekela i-OpenGL kwabanye abashayeli njengendlela yokubuyela emuva kuma-GPU angasekelwe abashayeli bomdabu be-OpenGL be-Mesa. Isibonelo, indlela efanayo isivele isetshenziswa ukuhlinzeka ngosekelo lwe-OpenGL kumshayeli we-freedreno we-Qualcomm Adreno 700 GPU kanye nomshayeli we-powervr we-Imagination PowerVR GPU esekelwe ku-Rogue microarchitecture.

I-Zink ihlinzeka ngokusetshenziswa kwe-OpenGL phezu kwe-Vulkan ekuvumela ukuthi uthole izingxenyekazi zekhompuyutha ezisheshisa i-OpenGL kumadivayisi asekela kuphela i-Vulkan API. Ekukhishweni okulandelayo kwe-Mesa, umshayeli we-Zink uzonikwa amandla ngokuzenzakalela uma akha. Ukusebenza kwe-Zink kuseduze nokusebenza kokusetshenziswa kwe-OpenGL yomdabu, okwenza kube nokwenzeka, esikhundleni sokumosha izinsiza ekugcineni abashayeli be-OpenGL abangabodwana, ukugxila ekusekelweni kwekhwalithi ephezulu kwe-Vulkan API, nokusebenzisa ukwesekwa kwe-OpenGL phezu kwe-Vulkan.

Azikho izinhlelo zokususa umshayeli we-Nouveau OpenGL omdala okwamanje, kodwa esimweni sawo samanje inhlanganisela ye-Zink + NVK ibonisa ukusebenza okuphezulu ekuhlolweni okuningi. Esigabeni samanje sokuthuthuka, lapho usebenzisa imidlalo eminingi, inhlanganisela ye-Zink + NVK ikuvumela ukuthi ufinyelele ukusebenza kwe-60 FPS nangaphezulu kumamodeli amasha we-GPU, kodwa kusenezinkinga ezingakaxazululwa nezindawo ezingakalungiswa ezizoxazululwa ngokuhamba kwesikhathi.

Okunye okuphawuliwe wumsebenzi wokuzinzisa umsebenzi wesendlalelo se-DXVK phezu komshayeli we-NVK, ohlinzeka ngokusetshenziswa kwe-Direct3D 9, 10 kanye no-11, ukusebenza ngokuhunyushwa kwezingcingo ku-Vulkan API. Akuwona wonke imidlalo ye-D3D11 esaqinisekisiwe ukuthi izosebenza nenhlanganisela ye-NVK+DXVK engashintshiwe evela ku-Mesa, kodwa amakhono ayisisekelo ayatholakala futhi amaphutha ahlonziwe ayasuswa kancane kancane. Ngokufanayo, ukuxhumana kwe-NVK ne-VKD3D-Proton kuyathuthukiswa ukuze kunikeze ukwesekwa kwe-D3D12, kodwa isimo sayo sisemuva kwe-NVK+DXVK futhi amanye amakhono ashodayo adinga ukuqaliswa.

Umshayeli we-NVK wakhiwe kusukela ekuqaleni iqembu elihlanganisa u-Karol Herbst (unjiniyela we-Nouveau e-Red Hat), u-David Airlie (umnakekeli we-DRM e-Red Hat), no-Jason/Faith Ekstrand (unjiniyela we-Mesa osebenzayo) wase-Collabora). Lapho bedala umshayeli, abathuthukisi basebenzisa amafayela enhlokweni esemthethweni kanye namamojula e-kernel avuliwe ashicilelwe yi-NVIDIA. Ikhodi ye-NVK isebenzise izingxenye ezithile eziyisisekelo zomshayeli we-Nouveau OpenGL kwezinye izindawo, kodwa ngenxa yomehluko wamagama kumafayela esihloko se-NVIDIA namagama aqanjwe kabusha e-Nouveau, ukuboleka ikhodi ngokuqondile kunzima futhi ingxenye enkulu. kwakudingekile ukuba kucatshangwe kabusha izinto eziningi futhi kusetshenziswe kusukela ekuqaleni.

Intuthuko yenziwe ngeso lokudala umshayeli omusha we-Vulkan we-Mesa, ikhodi engase ibolekwe lapho kwakhiwa abanye abashayeli. Ukwenza lokhu, lapho besebenza kumshayeli we-NVK, bazama ukucabangela konke okuhlangenwe nakho okukhona ekuthuthukiseni abashayeli be-Vulkan, bagcine isisekelo sekhodi ngendlela efanele futhi banciphise ukudluliswa kwekhodi kwabanye abashayeli be-Vulkan, benza njengoba kufanele umsebenzi ofanele noseqophelweni eliphezulu, hhayi ukukopisha ngobumpumputhe ukuthi kwenziwa kanjani kwabanye abashayeli. Umshayeli usevele ufakiwe ku-Mesa, futhi izinguquko ezidingekayo ku-Nouveau DRM driver API zifakiwe ku-Linux 6.6 kernel.

Source: opennet.ru

Engeza amazwana