
NVK là trình điều khiển Vulkan mã nguồn mở mới cho phần cứng đồ họa NVIDIA
Tháng 10 năm ngoái chúng ta nói chuyện ở đây trên blog về trình điều khiển NVK, trình điều khiển nguồn mở cho Mesa triển khai API đồ họa Vulkan cho card đồ họa NVIDIA mà Collabora đã nghiên cứu từ đầu bằng cách sử dụng các tệp tiêu đề chính thức và mô-đun hạt nhân mở do NVIDIA xuất bản.
Trong quá trình phát triển của nó NVK bị gắn mác “thử nghiệm” và bây giờ, trong những tin tức gần đây hơn Collabora đã thông báo rằng NVK đã trở nên ổn định và được khuyến nghị sử dụng chung vì khả năng tương thích hoàn toàn của nó với thông số kỹ thuật Vulkan 1.3 đã được thử nghiệm. Bộ điều khiển này đã vượt qua thành công tất cả các bài kiểm tra CTS (Bộ kiểm tra tuân thủ Khronos) và được đưa vào danh sách các bộ điều khiển được chứng nhận.

Chứng nhận bao gồm các GPU NVIDIA dựa trên vi kiến trúc Turing, Ampere và Ada, bao gồm từ dòng GeForce GTX 16xx đến RTX 4xxx và RTX 4000, RTX A2000 đến 6000. Các thử nghiệm này được thực hiện trong môi trường có nhân Linux 6.5 và 6.8rc1.
Nó được đề cập rằng Đạt được chứng chỉ chính thức công bố khả năng tương thích với các chuẩn đồ họa và cho phép sử dụng các nhãn hiệu Khronos có liên quan. Những thay đổi đã được tích hợp vào cơ sở mã Mesa và sẽ có sẵn trong Mesa 24.1.
Bên cạnh những tiến bộ trong NVK, Những cải tiến đáng kể cũng đã được thực hiện để hỗ trợ OpenGL cho card màn hình NVIDIA. Mesa đã áp dụng một thay đổi cho phép sử dụng trình điều khiển Zink để cung cấp hỗ trợ cho OpenGL 4.6 trên các hệ thống có loạt thẻ video NVIDIA mới, có thể gặp sự cố với trình điều khiển Nouveau OpenGL tiêu chuẩn (NVC0).
Chúng tôi đã làm việc chăm chỉ trong vài tháng qua để hoàn thành những khâu cuối cùng cần thiết để DXVK sẵn sàng hoạt động trên Upstream Mesa. Không phải tất cả các trò chơi D3D11 đều được đảm bảo hoạt động (sẽ có lỗi), nhưng tất cả các yêu cầu cơ bản đều có. Chúng tôi đang tích cực làm việc trên các phần còn lại để hỗ trợ giả lập D3D12 thông qua VKD3D-Proton. Có rất nhiều việc đã được thực hiện hoặc đang tiến hành nhưng vẫn còn thiếu một số phần, vì vậy đừng mong đợi các trò chơi D3D12 sẽ hoạt động được.
Những thay đổi này ở Mesa Họ cũng mở ra khả năng sử dụng Zink để hỗ trợ OpenGL trong các trình điều khiển khác thay thế cho GPU không được trình điều khiển OpenGL gốc của Mesa hỗ trợ. Ví dụ: một cách tiếp cận tương tự đang được sử dụng để cung cấp hỗ trợ OpenGL trong trình điều khiển freedreno cho GPU Qualcomm Adreno 700 và trình điều khiển powervr cho GPU Imagination PowerVR dựa trên vi kiến trúc Rogue.
Trong phiên bản tiếp theo của Mesa, trình điều khiển Zink sẽ được bật theo mặc định trong quá trình biên soạn. Hiệu suất của Zink tương đương với các triển khai OpenGL nguyên gốc, giúp có thể tập trung vào hỗ trợ chất lượng cao cho API Vulkan thay vì duy trì các trình điều khiển OpenGL riêng lẻ.
Mặc dù không có kế hoạch loại bỏ trình điều khiển Nouveau cũ OpenGL, Sự kết hợp Zink + NVK thể hiện hiệu năng cao hơn trong nhiều thử nghiệm. Ở giai đoạn phát triển hiện tại, sự kết hợp này cho phép đạt hiệu suất từ 60 FPS trở lên trên các mẫu GPU mới, mặc dù vẫn còn những khu vực chưa được tối ưu hóa sẽ được giải quyết theo thời gian.
Mặt khác, nó được đề cập rằng công việc đang được thực hiện để ổn định hoạt động của lớp DXVK trên trình điều khiển NVK, cung cấp cách triển khai Direct3D 9, 10 và 11 bằng cách dịch các lệnh gọi sang API Vulkan. Mặc dù không phải tất cả các trò chơi D3D11 đều được đảm bảo hoạt động với tổ hợp NVK+DXVK chưa sửa đổi của Mesa, nhưng các khiếm khuyết đã được xác định đang dần được loại bỏ. Tương tự như vậy, kết nối NVK với VKD3D-Proton đang được phát triển để cung cấp hỗ trợ cho D3D12, mặc dù trạng thái của nó vẫn đang được phát triển và yêu cầu triển khai một số khả năng còn thiếu.
Cuối cùng, điều đáng nói là trình điều khiển đã được đưa vào Mesa và những thay đổi cần thiết đối với API trình điều khiển Nouveau DRM đã được đưa vào kể từ phiên bản nhân Linux 6.6. Giấc ngủ ngắn muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết Trong liên kết sau đây.