NVK dan Zink telah memperbaiki keadaan dengan ketara dengan pemacu terbuka untuk GPU NVIDIA

Collabora telah mengumumkan bahawa ia telah membawa pemacu NVK terbuka untuk kad video NVIDIA sedia untuk kegunaan harian oleh pelbagai pengguna dan telah memperakui pemacu ini dalam konsortium Khronos, yang membangunkan piawaian grafik. Pemandu diiktiraf sebagai serasi sepenuhnya dengan spesifikasi Vulkan 1.3, telah berjaya melepasi semua ujian daripada CTS (Khronos Conformance Test Suite) dan termasuk dalam senarai pemandu yang diperakui.

Pensijilan telah dilengkapkan untuk GPU NVIDIA berdasarkan mikroarkitek Turing (GeForce GTX 16xx, RTX 20xx dan siri Quadro RTX), Ampere (GeForce RTX 30xx dan RTX A2000/4000/5000/6000 siri) dan Ada (GeForce RTX 4xxx, RTX 4000 , RTX 4xxx/5000/6000 Ada). Ujian dilakukan dalam persekitaran dengan kernel Linux 6.5 dan 6.8rc1. Mendapatkan sijil membolehkan anda mengisytiharkan keserasian secara rasmi dengan piawaian grafik dan menggunakan tanda dagangan Khronos yang berkaitan. Perubahan telah diterima ke dalam pangkalan kod Mesa dan akan menjadi sebahagian daripada keluaran Mesa 24.1.

Selain penambahbaikan dalam NVK, terdapat kemajuan yang ketara dalam menyediakan sokongan OpenGL untuk kad video NVIDIA. Mesa telah menerima pakai perubahan yang membolehkan penggunaan pemacu Zink untuk menyediakan sokongan untuk OpenGL 4.6 pada sistem dengan siri baharu kad video NVIDIA (bermula dengan GeForce RTX 20xx), yang mungkin mengalami masalah dalam stok pemacu OpenGL Nouveau (NVC0). Untuk mendayakan Zink dan bukannya NVC0 dalam Mesa 24.1, hanya tetapkan pembolehubah persekitaran "NOUVEAU_USE_ZINK=1".

Perubahan yang dibuat pada Mesa juga menyediakan keupayaan untuk menggunakan Zink untuk menyokong OpenGL dalam pemacu lain sebagai sandaran untuk GPU yang tidak disokong oleh pemacu OpenGL asli Mesa. Sebagai contoh, pendekatan yang sama telah digunakan untuk menyediakan sokongan OpenGL dalam pemacu freedreno untuk GPU Qualcomm Adreno 700 dan pemacu powervr untuk GPU Imagination PowerVR berdasarkan mikroarchitecture Rogue.

Zink menyediakan pelaksanaan OpenGL di atas Vulkan yang membolehkan anda mendapatkan OpenGL dipercepatkan perkakasan pada peranti yang hanya menyokong API Vulkan. Dalam keluaran Mesa seterusnya, pemacu Zink akan didayakan secara lalai semasa membina. Prestasi Zink hampir sama dengan prestasi pelaksanaan OpenGL asli, yang memungkinkan, dan bukannya membazir sumber untuk mengekalkan pemacu OpenGL individu, untuk memfokus pada sokongan berkualiti tinggi untuk API Vulkan dan melaksanakan sokongan OpenGL di atas Vulkan.

Belum ada rancangan untuk mengalih keluar pemacu OpenGL Nouveau lama, tetapi dalam bentuk semasa gabungan Zink + NVK menunjukkan prestasi yang lebih tinggi dalam banyak ujian. Pada peringkat pembangunan semasa, apabila menjalankan banyak permainan, gabungan Zink + NVK membolehkan anda mencapai prestasi 60 FPS dan lebih tinggi pada model GPU baharu, tetapi masih terdapat beberapa masalah yang tidak dapat diselesaikan dan kawasan yang tidak dioptimumkan yang akan diselesaikan dari semasa ke semasa.

Turut diperhatikan ialah kerja untuk menstabilkan kerja lapisan DXVK di atas pemacu NVK, yang menyediakan pelaksanaan Direct3D 9, 10 dan 11, bekerja melalui terjemahan panggilan ke API Vulkan. Tidak semua permainan D3D11 masih dijamin berfungsi dengan gabungan NVK+DXVK yang tidak diubah suai daripada Mesa, tetapi keupayaan asas tersedia dan kecacatan yang dikenal pasti akan dihapuskan secara beransur-ansur. Begitu juga, sambungan NVK dengan VKD3D-Proton sedang dibangunkan untuk menyediakan sokongan untuk D3D12, tetapi statusnya masih berada di belakang NVK+DXVK dan beberapa keupayaan yang hilang perlu dilaksanakan.

Pemandu NVK dibina dari awal oleh pasukan termasuk Karol Herbst (pembangun Nouveau di Red Hat), David Airlie (penyelenggara DRM di Red Hat) dan Jason/Faith Ekstrand (pembangun Mesa aktif) dari Collabora). Semasa mencipta pemacu, pembangun menggunakan fail pengepala rasmi dan modul kernel terbuka yang diterbitkan oleh NVIDIA. Kod NVK menggunakan beberapa komponen asas pemacu Nouveau OpenGL di beberapa tempat, tetapi disebabkan perbezaan nama dalam fail pengepala NVIDIA dan nama kejuruteraan terbalik di Nouveau, peminjaman terus kod adalah sukar dan sebahagian besarnya banyak perkara yang perlu difikirkan semula dan dilaksanakan dari awal .

Pembangunan telah dijalankan dengan tujuan untuk mencipta rujukan baharu pemandu Vulkan untuk Mesa, yang kodnya boleh dipinjam semasa mencipta pemandu lain. Untuk melakukan ini, apabila bekerja pada pemacu NVK, mereka cuba mengambil kira semua pengalaman sedia ada dalam membangunkan pemacu Vulkan, mengekalkan asas kod dalam bentuk optimum dan meminimumkan pemindahan kod daripada pemacu Vulkan lain, melakukan seperti yang sepatutnya untuk kerja yang optimum dan berkualiti tinggi, dan tidak meniru secara membabi buta cara dilakukan pada pemandu lain. Pemacu sudah disertakan dalam Mesa, dan perubahan yang diperlukan pada API pemacu DRM Nouveau disertakan dalam kernel Linux 6.6.

Sumber: opennet.ru

Tambah komen