推出 NVK,用於 NVIDIA 顯卡的開源 Vulkan 驅動程序

Collabora 推出了 NVK,這是一款適用於 Mesa 的新開源驅動程序,可為 NVIDIA 顯示卡實現 Vulkan 圖形 API。 該驅動程式是使用 NVIDIA 發布的官方頭文件和開源核心模組從頭開始編寫的。 驅動程式程式碼是根據 MIT 許可證開源的。 該驅動程式目前僅支援基於 Turing 和 Ampere 微架構(自 2018 年 XNUMX 月起發布)的 GPU。

該計畫由紅帽的 Nouveau 開發人員 Karol Herbst、紅帽的 DRM 維護人員 David Airlie 和 Collabora 的活躍 Mesa 開發人員 Jason Ekstrand 組成的團隊開發。 在開發新的驅動程式時,有些地方使用了Nouveau OpenGL驅動的基本元件,但由於NVIDIA頭檔中的名稱與逆向工程基礎上得到的Nouveau中的名稱不同,直接借用了程式碼很困難,在大多數情況下,有必要重新思考很多事情並用零來實現它們。

開發工作還著眼於為 Mesa 創建一個新的參考 Vulkan 驅動程序,在創建其他驅動程式時可以藉用該驅動程式的程式碼。 為此,在開發驅動程式時,NVK 嘗試考慮開發 Vulkan 驅動程式的所有現有經驗,以最佳形式維護程式碼庫,並最大限度地減少來自其他 Vulkan 驅動程式的程式碼傳輸,以達到最佳效果和高品質的工作,而不是盲目複製其他驅動程式的工作方式。

NVK 驅動程式僅開發了幾個月,因此其功能有限。 當從 Vulkan CTS(相容性測試套件)執行 98% 的測試時,驅動程式成功通過了 10% 的測試。 一般來說,驅動程式準備估計為 ANV 和 RADV 驅動程式功能的 20-25%。 在硬體支援方面,驅動程式目前僅限於基於 Turing 和 Ampere 微架構的卡。 正在開發修補程式來支援 Kepler、Maxwell 和 Pascal GPU,但尚未準備就緒。

從長遠來看,NVIDIA 顯示卡的 NVK 驅動程式預計將達到與 AMD 卡的 RADV 驅動程式類似的品質和功能水準。 一旦 NVK 驅動程式準備就緒,在其開發過程中建立的公共庫就可以用於改進 NVIDIA 顯示卡的 Nouveau OpenGL 驅動程式。 也正在考慮使用 Zink 專案為 NVIDIA 顯示卡實現成熟的 OpenGL 驅動程式的可能性,透過廣播呼叫 Vulkan API 來運作。

來源: opennet.ru

添加評論