Po dvou dekádách problémů, proseb i ironických vyjádření se to nakonec stalo: Nvidia uvolnila zdrojové kódy svého jaderného ovladače a vystavila je na GitHub. Společnost nabízí ovladače pro grafické karty už dvě dekády také linuxovým uživatelům, ale zatím šlo vždy jen o uzavřené binárny bloby.
Uživatelé inspirováni úspěchem konkurenční společnosti AMD žádali společnost Nvidia, aby také ovladače otevřela. Počínaje verzí R515 je nyní konečně ovladač k dispozici včetně zdrojových kódů, konkrétně pod duální licencí GNU GPL a MIT. Pojďme společně odpovědět na otázky, které se okolo otevření ovladače točí.
Pro koho je určen?
Nvidia říká, že ovladač je zatím určen především pro datacentrové grafické procesory Turing a Ampere – pro ně je dostupný v „produkční kvalitě“. Ovladač míří k použití s CUDA a přestože obsahuje kód pro podporu displeje, ten není dostatečně otestován a nemusí být kompletní.
Stav podpory GeForce a desktopových grafik je tedy zatím označen jako „alfa“. Uživatelé, kteří chtějí přesto nový ovladač vyzkoušet, mohou použít jaderný parametr NVreg_EnableUnsupportedGpus
, který je zmíněn v dokumentaci. Součástí kódu je podpora vlastností jako G-SYNC, NVIDIA RTX ray tracing ve Vulkanu a NVIDIA OptiX.
Instalační balíček dodávaný společností Nvidia bude obsahovat obě varianty: binární i otevřenou. Uživatel si bude moci vybrat, kterou chce do systému nainstalovat.
Nový otevřený ovladač ale bude podporovat jen čipy Turing a novější, tedy grafické karty vydané v roce 2018 a později. Uživatelé starších karet budou nadále používat původní binární ovladače.
Co je přesně otevřeno?
Otevřeny byly zdrojové kódy modulu určeného pro linuxové jádro. Velká část funkcionality je ale součástí firmware a také komponent určených pro uživatelský prostor. Tyto části jsou netknuté a zůstanou i nadále uzavřené. Jde především o knihovny a ovladače pro OpenGL, Vulkan, OpenCL a CUDA.
Christian Schaller, šéf desktopového týmu ze společnosti Red Hat, ale v blogovém zápisku říká, že jde přesto o velmi dobrou zprávu. Nyní máme ovladač jádra Nvidia, který bude schopen využívat pouze GPL API v jádře Linuxu, ačkoli toto počáteční vydání nevyužívá žádná API, která starý ovladač již nepoužíval.
Původní ovladač nemohl používat GPL only API kvůli licenci. Nyní toto omezení mizí, ale první vydaná verze na tom ještě nic nemění.
Součástí modulu do jádra je samotný ovladač, integrace NVIDIA-DRM, ovladač NVIDIA-Modeset a NVIDIA-UVM pro správu Unified Video Memory.
Co to znamená pro uživatele?
Schaller také vysvětluje, že tu s námi ještě ovladače Nvidia a Nouveau budou dlouho společně. Z dlouhodobého hlediska je ale otevření ovladače velmi dobrý krok. V nejbližší době to nebude mít zásadní dopad. Postupem času však poskytne cestu k radikálnímu zjednodušení podpory hardwaru Nvidia.
Nakonec by tak především uživatelům mělo ubýt problémů a používání grafických karet Nvidia by mělo být ještě jednodušší. Z dlouhodobého hlediska doufáme, že budeme moci získat podobnou zkušenost s hardwarem Nvidia, kterou dnes můžeme nabídnout pro hardware Intel a AMD, pokud jde o funkčnost ihned po vybalení.
Konkrétně to znamená okamžitou funkčnost nových generací čipů, vysoký výkon ovladačů Mesa a možnost podepsat ovladač v jádře pro bezproblémové použití secure bootu.
Dostane se do jádra?
Firma zatím tvrdí, že kód ovladače není připraven na přijetí do hlavního stromu linuxového jádra. Zároveň ale slibuje, že na tom bude pracovat se společnostmi Canonical, Red Hat a Suse. Pro běžného uživatele linuxového desktopu tedy nejde zatím o nic převratného, co by mohl začít teď hned používat. Ale je to příslib do budoucna.
Mezi tím ovšem mohou zveřejněné zdrojové kódy posloužit vývojářům ovladače Nouveau, kteří díky nim mohou svůj kód významně vylepšit. Nouveau umožňuje využívat stejného firmware pro karty, jako používají originální ovladače. Bude to opět nějakou dobu trvat, ale Nouveau by mohl vyřešit svá omezení s taktováním GPU a mohl by se tak dobrat stejného výkonu jako originální ovladače.
Zmíněné partnerské společnosti Canonical a Suse už přislíbily, kdy se nové ovladače dostanou do jejich distribucí. V následujících měsících by se tak nových balíčků měli dočkat uživatelé čerstvě vydaného Ubuntu 22.04 LTS a SUSE Linux Enterprise 15 SP4.