NVK và Zink đã cải thiện đáng kể tình trạng mở driver cho GPU NVIDIA

Collabora thông báo rằng họ đã mang trình điều khiển NVK mở cho card màn hình NVIDIA sẵn sàng cho nhiều người dùng sử dụng hàng ngày và đã chứng nhận trình điều khiển này trong tập đoàn Khronos, nơi phát triển các tiêu chuẩn đồ họa. Trình điều khiển được công nhận là hoàn toàn tương thích với thông số kỹ thuật Vulkan 1.3, đã vượt qua thành công tất cả các bài kiểm tra từ CTS (Khronos Conformance Test Suite) và được đưa vào danh sách các trình điều khiển được chứng nhận.

Đã hoàn tất chứng nhận cho GPU NVIDIA dựa trên vi kiến ​​trúc Turing (dòng GeForce GTX 16xx, RTX 20xx và Quadro RTX), Ampere (dòng GeForce RTX 30xx và RTX A2000/4000/5000/6000) và Ada (GeForce RTX 4xxx, RTX 4000 SFF , RTX 4xxx/5000/6000 Ada). Thử nghiệm được thực hiện trong môi trường có nhân Linux 6.5 và 6.8rc1. Việc có được chứng chỉ cho phép bạn chính thức tuyên bố khả năng tương thích với các tiêu chuẩn đồ họa và sử dụng các nhãn hiệu Khronos có liên quan. Những thay đổi đã được chấp nhận trong cơ sở mã Mesa và sẽ là một phần của bản phát hành Mesa 24.1.

Ngoài những cải tiến về NVK, còn có tiến bộ đáng kể trong việc cung cấp 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 (bắt đầu với GeForce RTX 20xx), có thể gặp sự cố trong trình điều khiển Nouveau OpenGL gốc (NVC0). Để bật Zink thay vì NVC0 trong Mesa 24.1, chỉ cần đặt biến môi trường “NOUVEAU_USE_ZINK=1”.

Những thay đổi được thực hiện đối với Mesa cũng cung cấp khả năng sử dụng Zink để hỗ trợ OpenGL trong các trình điều khiển khác như một phương án dự phòng cho các 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ự đã đượ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.

Zink cung cấp triển khai OpenGL trên Vulkan cho phép bạn tải OpenGL được tăng tốc phần cứng trên các thiết bị chỉ hỗ trợ API Vulkan. Trong bản phát hành tiếp theo của Mesa, trình điều khiển Zink sẽ được bật theo mặc định khi xây dựng. Hiệu suất của Zink gần bằng hiệu suất của các triển khai OpenGL gốc, điều này giúp thay vì lãng phí tài nguyên vào việc duy trì các trình điều khiển OpenGL riêng lẻ, có thể tập trung vào hỗ trợ chất lượng cao cho API Vulkan và triển khai hỗ trợ OpenGL trên Vulkan.

Hiện chưa có kế hoạch loại bỏ trình điều khiển Nouveau OpenGL cũ, nhưng ở dạng hiện tại, sự kết hợp Zink + NVK cho thấy hiệu suất cao hơn trong nhiều thử nghiệm. Ở giai đoạn phát triển hiện tại, khi chạy nhiều game, sự kết hợp Zink + NVK cho phép bạn đạt được hiệu suất từ ​​60 FPS trở lên trên các mẫu GPU mới, nhưng vẫn còn một số vấn đề chưa được giải quyết và các khu vực chưa được tối ưu hóa sẽ được giải quyết theo thời gian.

Cũng lưu ý rằng công việc nhằm ổn định hoạt động của lớp DXVK trên trình điều khiển NVK, cung cấp khả năng triển khai Direct3D 9, 10 và 11, hoạt động thông qua việc dịch các lệnh gọi sang API Vulkan. 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 từ Mesa, nhưng các khả năng cơ bản đều có sẵn và các khiếm khuyết được xác định đang dần được loại bỏ. Tương tự, kết nối NVK với VKD3D-Proton đang được phát triển để cung cấp hỗ trợ cho D3D12, nhưng trạng thái của nó vẫn xếp sau NVK+DXVK và một số khả năng còn thiếu cần được triển khai.

Trình điều khiển NVK được xây dựng từ đầu bởi một nhóm bao gồm Karol Herbst (nhà phát triển Nouveau tại Red Hat), David Airlie (người bảo trì DRM tại Red Hat) và Jason/Faith Ekstrand (nhà phát triển Mesa tích cực) từ Collabora). Khi tạo trình điều khiển, các nhà phát triển đã sử dụng các tệp tiêu đề chính thức và các mô-đun hạt nhân mở do NVIDIA xuất bản. Mã NVK đã sử dụng một số thành phần cơ bản của trình điều khiển Nouveau OpenGL ở một số nơi, nhưng do sự khác biệt về tên trong tệp tiêu đề NVIDIA và tên được thiết kế ngược trong Nouveau, việc mượn mã trực tiếp rất khó khăn và phần lớn nhiều thứ phải được suy nghĩ lại và thực hiện lại từ đầu.

Quá trình phát triển được thực hiện nhằm mục đích tạo trình điều khiển Vulkan tham chiếu mới cho Mesa, mã của trình điều khiển này có thể được mượn khi tạo các trình điều khiển khác. Để làm được điều này, khi làm việc trên trình điều khiển NVK, họ đã cố gắng tính đến tất cả kinh nghiệm hiện có trong việc phát triển trình điều khiển Vulkan, duy trì cơ sở mã ở dạng tối ưu và giảm thiểu việc chuyển mã từ các trình điều khiển Vulkan khác, làm như vậy đối với công việc tối ưu và chất lượng cao, không sao chép một cách mù quáng cách thực hiện trong các trình điều khiển khác. Trình điều khiển đã được bao gồm trong Mesa và những thay đổi cần thiết đối với API trình điều khiển Nouveau DRM cũng được bao gồm trong nhân Linux 6.6.

Nguồn: opennet.ru

Thêm một lời nhận xét