Podczas gdy dopiero co mówiliśmy o Nouveau, który zaczyna wylądować wsparcie open source GeForce RTX 30″Ampere”jest ekscytujące, jak wspomniano, wciąż istnieją przeszkody do pokonania, aby mieć dobrą wydajność sterowników open source NVIDIA na nowoczesnych procesorach graficznych. Tak samo ekscytującą wiadomością jest to, że Nouveau zaczął dostosowywać część swojego kodu do samodzielnej biblioteki, aby mógł być używany w przyszłości przez inne nowe sterowniki.
W ciągu ostatnich kilku dni rozpoczęto prace nad restrukturyzacją kodu sterownika Nouveau Mesa wokół generowania kodu, aby mógł on funkcjonować w samodzielnej bibliotece.
To jest po prostu podsumowane w tym czasie przez Davida Airlie z Red Hata: „To po prostu przenosi kompilację codegen do oddzielnej biblioteki, to jest tylko praca przygotowawcza na przyszłość, w której inne sterowniki będą chciały ponownie wykorzystać ten kod. nie jest to idealne rozwiązanie do podłączenia sterownika vulkan, ale wymaga to bardziej dogłębnej operacji ”.
Zasadniczo ten obecny wysiłek przenosi generowanie kodu sterownika do samodzielnej biblioteki wewnątrz Mesy, aby mógł być łatwo ponownie wykorzystany przez inny przyszły kod poza Nouveau Gallium3D. Do najbardziej prawdopodobnych zastosowań tej samodzielnej biblioteki należą:
-Praca nad sterownikiem Nouveau Vulkan przy jednoczesnym współdzieleniu generowania kodu kompilatora shaderów między sterownikami… Oprócz wydajności brak sterownika NVIDIA Vulkan o otwartym kodzie źródłowym był jednym z duże bolesne miejsca dla wysiłków Nouveau w 2022 r. Z większością gier na Linuksa natywnie lub za pośrednictwem Steam Play, które mogą korzystać z API Vulkan.
-Praca nad nowym sterownikiem Mesa, aby wykorzystać niedawno otwarty sterownik jądra firmy NVIDIA. To również jest bardzo prawdopodobne. Zasadniczo przy wszystkich zmienionych interfejsach jądra, podczas porównywania sterownika Nouveau DRM/KMS z nowym sterownikiem jądra firmy NVIDIA, nad którym pracowali, może być łatwiej zacząć od czystszego planu/przekształcenie kodu sterownika Nouveau w osobny nowy sterownik, który jawnie obiera za cel ten nowy sterownik jądra. Ten nowy sterownik byłby również w stanie skupić się tylko na nowszych procesorach graficznych Turing i nie tylko obsługiwanych przez ten sterownik jądra i wyeliminować wszystkie stare/starsze wsparcie i inne śmieci, które narosły w kodzie Nouveau Mesa przez lata.
Lub całkiem możliwe, oba scenariusze.
Jak wspomniano w poprzednich artykułach o otwartym kodzie źródłowym firmy NVIDIA, jeśli NVIDIA chce, aby ich nowy sterownik jądra o otwartym kodzie źródłowym został ostatecznie włączony do nadrzędnego jądra systemu Linux, będzie potrzebować sterownika przestrzeni użytkownika o otwartym kodzie źródłowym, który ćwiczy wszystkie ujawnione interfejsy jądra… Dzięki temu jest mało prawdopodobne, że NVIDIA udostępni swoje sterowniki OpenGL lub Vulkan o zamkniętym kodzie źródłowym, za pośrednictwem inżynierów NVIDIA i ich partnerów z Red Hat, którzy musieliby wymyślić wykorzystanie sterownika Mesa tego nowego sterownika jądra–albo dostosowując swój istniejący kod Nouveau Gallium3D do obsługi tego sterownika jądra, albo sądząc po tej restrukturyzacji kodu Mesa, może on przybrać postać nowego sterownika Mesa.
W każdym razie oczekujące zmiany dotyczące przeniesienia Generowanie kodu w samodzielną bibliotekę to tylko jeden mały początkowy krok znacznie większego wysiłku, jakim jest wprowadzenie dowolnego nowego sterownika NVIDIA o otwartym kodzie źródłowym w Mesa. W obecnej formie ten oczekujący kod nie ma bezpośredniego wpływu na użytkowników końcowych. Przynajmniej tak się dzieje, a Red Hat kontynuuje współpracę z firmą NVIDIA w tym wieloletnim projekcie sterowników typu open source.
Tymczasem, jeśli chodzi o sterownik jądra DRM/KMS firmy Nouveau, w ostatnim czasie nie było żadnej większej pracy, którą można by opisać. Jest bardziej niż prawdopodobne, że ten sterownik będzie dalej stagnować i pozostanie dostępny dla tych, którzy korzystają z procesorów graficznych przed Turingiem, którzy chcą używać sterownika open-source… Przypominamy jednak, że ten sterownik jest naprawdę praktyczny i wydajny tylko dla GeForce GTX 600/700 procesorów graficznych „Kepler” i sprzęt GTX 750 „Maxwell1”, gdzie można osiągnąć ponowne taktowanie w celu osiągnięcia najwyższych stanów wydajności. Inżynierowie Red Hat w ciągu ostatnich kilku lat wnosili główny wkład w sterownik jądra Nouveau i jeśli skoncentrują wszystkie swoje zasoby na tym nowoczesnym sterowniku jądra NVIDIA o otwartym kodzie źródłowym, nie spodziewaj się, że w przyszłości nastąpi wiele działań związanych z kodem. źródłowy, odwrócony sterownik jądra.
Spójrz na Phoronix, w miarę jak ewoluują prace nad nowoczesnymi sterownikami NVIDIA o otwartym kodzie źródłowym – prawdopodobnie minie jeszcze kilka miesięcy, zanim sterownik jądra o otwartym kodzie źródłowym NVIDIA będzie kandydatem do głównego Linuksa w jądrze.