Zaprezentowano NVK, sterownik Vulkan o otwartym kodzie źródłowym dla kart graficznych NVIDIA

Firma Collabora wprowadziła NVK, nowy sterownik typu open source dla Mesa, który implementuje API graficzne Vulkan dla kart graficznych NVIDIA. Sterownik został napisany od podstaw przy użyciu oficjalnych plików nagłówkowych i modułów jądra typu open source opublikowanych przez firmę NVIDIA. Kod sterownika jest open source na licencji MIT. Sterownik obsługuje obecnie wyłącznie procesory graficzne oparte na mikroarchitekturach Turing i Ampere, wypuszczanych od września 2018 roku.

Projekt jest rozwijany przez zespół, w skład którego wchodzą Karol Herbst, programista Nouveau w Red Hat, David Airlie, opiekun DRM w Red Hat i Jason Ekstrand, aktywny programista Mesa w Collabora. Podczas opracowywania nowego sterownika w niektórych miejscach wykorzystywane są podstawowe komponenty sterownika Nouveau OpenGL, jednak ze względu na różnice w nazwach w plikach nagłówkowych NVIDIA i nazwach w Nouveau, uzyskanych na podstawie inżynierii wstecznej, bezpośredniego zapożyczenia kod jest trudny i w większości przypadków konieczne było przemyślenie wielu rzeczy i wdrożenie ich z zerem.

Prowadzone są także prace rozwojowe z myślą o stworzeniu nowego referencyjnego sterownika Vulkan dla Mesy, którego kod będzie można pożyczyć przy tworzeniu innych sterowników. Aby to osiągnąć, pracując nad sterownikiem, firma NVK starała się wziąć pod uwagę całe dotychczasowe doświadczenie w opracowywaniu sterowników Vulkan, utrzymać bazę kodu w optymalnej formie i zminimalizować transfer kodu z innych sterowników Vulkan, robiąc wszystko tak, jak powinno, aby uzyskać optymalną i wysoką jakość pracy, a nie ślepe kopiowanie tego, jak to zostało zrobione w innych sterownikach.

Sterownik NVK jest rozwijany dopiero od kilku miesięcy, więc jego funkcjonalność jest ograniczona. Sterownik pomyślnie przechodzi 98% testów, uruchamiając 10% testów z pakietu Vulkan CTS (Compatibility Test Suite). Ogólnie gotowość sterowników szacuje się na 20-25% funkcjonalności sterowników ANV i RADV. Pod względem obsługi sprzętowej sterownik ogranicza się obecnie do kart opartych na mikroarchitekturach Turing i Ampere. Trwają prace nad poprawkami obsługującymi procesory graficzne Kepler, Maxwell i Pascal, ale nie są one jeszcze gotowe.

Oczekuje się, że w dłuższej perspektywie sterownik NVK dla kart graficznych NVIDIA osiągnie poziom jakości i funkcjonalności podobny do sterownika RADV dla kart AMD. Gdy sterownik NVK będzie gotowy, wspólne biblioteki utworzone podczas jego opracowywania można wykorzystać do ulepszenia sterownika Nouveau OpenGL dla kart graficznych NVIDIA. Rozważana jest również możliwość wykorzystania projektu Zink do wdrożenia pełnoprawnego sterownika OpenGL dla kart graficznych NVIDIA, pracującego poprzez rozgłaszanie wywołań do API Vulkan.

Źródło: opennet.ru

Dodaj komentarz