Memperkenalkan NVK, pemacu Vulkan terbuka untuk kad video NVIDIA

Collabora telah memperkenalkan NVK, pemacu sumber terbuka baharu untuk Mesa yang melaksanakan API grafik Vulkan untuk kad video NVIDIA. Pemacu ditulis dari awal menggunakan fail pengepala rasmi dan modul kernel sumber terbuka yang diterbitkan oleh NVIDIA. Kod pemandu adalah sumber terbuka di bawah lesen MIT. Pemacu pada masa ini hanya menyokong GPU berdasarkan seni bina mikro Turing dan Ampere, dikeluarkan sejak September 2018.

Projek ini sedang dibangunkan oleh pasukan yang termasuk Karol Herbst, pembangun Nouveau di Red Hat, David Airlie, penyelenggara DRM di Red Hat dan Jason Ekstrand, pembangun Mesa aktif di Collabora. Semasa membangunkan pemacu baharu, komponen asas pemacu Nouveau OpenGL digunakan di beberapa tempat, tetapi disebabkan perbezaan nama dalam fail pengepala NVIDIA dan nama dalam Nouveau yang diperoleh berdasarkan kejuruteraan terbalik, peminjaman terus kod adalah sukar dan sebahagian besarnya adalah perlu untuk memikirkan semula banyak perkara dan melaksanakannya dengan sifar.

Pembangunan juga sedang dijalankan dengan tujuan untuk mencipta rujukan baharu pemacu Vulkan untuk Mesa, yang kodnya boleh dipinjam semasa mencipta pemacu lain. Untuk melakukan ini, apabila bekerja pada pemandu, NVK 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 yang sepatutnya untuk optimum dan kerja berkualiti tinggi, dan tidak meniru secara membuta tuli bagaimana ia dilakukan pada pemandu lain.

Pemacu NVK hanya dalam pembangunan selama beberapa bulan, jadi fungsinya terhad. Pemandu berjaya melepasi 98% ujian apabila menjalankan 10% daripada ujian daripada Vulkan CTS (Compatibility Test Suite). Secara umum, kesediaan pemandu dianggarkan pada 20-25% daripada kefungsian pemacu ANV dan RADV. Dari segi sokongan perkakasan, pemandu pada masa ini terhad kepada kad berdasarkan seni bina mikro Turing dan Ampere. Tampalan sedang diusahakan untuk menyokong GPU Kepler, Maxwell dan Pascal, tetapi mereka belum bersedia lagi.

Dalam jangka panjang, pemacu NVK untuk kad grafik NVIDIA dijangka mencapai tahap kualiti dan kefungsian yang serupa dengan pemacu RADV untuk kad AMD. Setelah pemacu NVK sedia, perpustakaan biasa yang dicipta semasa pembangunannya boleh digunakan untuk menambah baik pemacu Nouveau OpenGL untuk kad video NVIDIA. Kemungkinan menggunakan projek Zink untuk melaksanakan pemacu OpenGL sepenuhnya untuk kad video NVIDIA, yang berfungsi melalui panggilan penyiaran ke API Vulkan, juga sedang dipertimbangkan.

Sumber: opennet.ru

Tambah komen