NVK, pemacu terbuka untuk kad grafik NVIDIA, menyokong Vulkan 1.0

Konsortium Khronos, yang membangunkan piawaian grafik, telah mengiktiraf keserasian penuh pemacu NVK terbuka untuk kad video NVIDIA dengan spesifikasi Vulkan 1.0. Pemandu telah berjaya melepasi semua ujian daripada CTS (Kronos Conformance Test Suite) dan termasuk dalam senarai pemandu yang disahkan. Pensijilan telah dilengkapkan untuk GPU NVIDIA berdasarkan mikroarchitecture Turing (TITAN RTX, GeForce RTX 2060/2070/2080, GeForce GTX 1660, Quadro RTX 3000-8000, Quadro T1000/T2000). Ujian telah dilakukan dalam persekitaran dengan kernel Linux 6.5, X.Org X Server 1.20.14, XWayland 22.1.9 dan GNOME Shell 44.4. Mendapatkan sijil membolehkan anda mengisytiharkan keserasian secara rasmi dengan piawaian grafik dan menggunakan tanda dagangan Khronos yang berkaitan.

Pemandu NVK dibina dari awal oleh pasukan termasuk Karol Herbst (pembangun Nouveau di Red Hat), David Airlie (penyelenggara DRM di Red Hat) dan Jason Ekstrand (pembangun Mesa aktif di 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.

Antara perubahan dalam pengumuman itu, Mesa juga mencatatkan penggunaan pengkompil bahagian belakang baharu untuk NVK, yang ditulis dalam bahasa Rust dan menyelesaikan masalah dalam pengkompil lama yang mengganggu laluan teks Kronos, serta menghapuskan beberapa batasan asas bagi seni bina yang tidak boleh diperbetulkan tanpa kerja semula lengkap pengkompil lama. Antara rancangan untuk masa depan, penambahan sokongan GPU berdasarkan mikroarkitektur Maxwell dan pelaksanaan sokongan penuh untuk API Vulkan 1.3 disebut dalam bahagian belakang baharu.

Sumber: opennet.ru

Tambah komen