Názor k článku Velká změna pro uživatele grafik GeForce na Linuxu. Nvidia přechází na otevřené ovladače od Kamil Páral - Přidám k tomu trochu upřesňující komentář. Je to...

  • 19. 5. 2022 12:50

    Kamil Páral

    Přidám k tomu trochu upřesňující komentář. Je to samozřejmě od Nvidie dobrý krok vpřed, ale bohužel ne tak velký, jak by se mohlo zdát, a ke kvalitě podpory od Intelu a AMD se asi hodně dlouho nepřiblíží. U zmíněných dvou je všechno opravdu automatické (out of the box), nic nemusíte řešit, vše funguje. Tady je to externí projekt, který není integrovaný do jádra (zatím nevypadá pravděpodobné, že by se o to v dohledné době snažili), a není vedený komunitním stylem vývoje. Do repozitáře jenom jednou za čas přibyde nový commit s novou verzí ovladače, stylem "házení komunitě přes zeď" (viz jejich readme, je to tam popsané). Takže pokud teď bude někde probíhat opravdový opensource vývoj a integrace, tak to bude spíše na straně Nouveau, neoficiálního ovladače v jádře (nyní dost tragického kvůli překážkám ze strany Nvidie, což by se teď mohlo zlepšit). Zároveň Nvidia jasně říká, že aktuálně nemá v úmyslu otevřít ovladače v uživatelském prostoru (OpenGL, Vulkan), což je minimálně polovina skládačky. Pokrok se tedy opravdu dá čekat teď jen u toho Nouveau, nikoliv v tom, že by Nvidia grafiky fungovaly automaticky po instalaci systému. Pořád bude nutná otrava s ruční instalací ovladačů, a také zajištění, že uživatelské ovladače a jaderné ovladače si verzí přesně odpovídají (to možná nějak technicky distribuce zařídí). Celá tato aktivita vypadá, že je tlačená spíš firmami ohledně datacenter (kde ani nemají obrazový výstup, potřebují akorát funkční jadernou část, aby na tom mohly pustit výpočty), než krok pro koncové zákazníky.

    > Ani AMD neotevřelo plně tuto část ovladače a dál tyto komponenty distribuuje jako uzavřené. Ovšem zároveň umožňuje a podporuje použití open source alternativ, takže grafiky Radeon lze používat jak s těmito proprietárními, tak s kompletně open source komponentami (základní vrstva v jádře je ale vždy otevřená).

    Toto není úplně přesné. AMD má proprietární *firmware* pro grafiky, ostatně jako Intel (a o Nvidii se ani nemusíme bavit). Jak jaderná část (amdgpu), tak část v uživatelském prostoru (radeonsi pro OpenGL, amdvlk pro Vulkan) je otevřená. První dvě části jsou i součástí upstreamových projektů (kernel, mesa) a komunitně se vyvíjí, plus AMD platí spoustu jejich vývojářů. Není moc víc co si přát. Amdvlk je sice otevřený, ale bohužel bez komunitního vývoje (opět stylem hodíme to komunitě přes zeď, jak bylo popsáno výše), takže si linuxová komunita vytvořila ovladač radv, který se stal součástí upstreamu (mesa) a v podstatě všechny distribuce ho používají místo amdvlk. Výkon je stejný a dají se tam snadno opravovat chyby a spolupracovat na nových vlastnostech (naposled třeba raytracing), na rozdíl od amdvlk. Naštěstí vytvořit ovladač pro Vulkan je řádově snadnější než pro OpenGL, takže si to může komunita dovolit.
    Je pravda, že AMD má i uzavřený ovladač amdgpu-pro, který v podstatě obsahuje komponenty zmíněné výše (u radeonsi si teda nejsem úplně jistý), jenom je žene skrz proprietární kompilátor a dělá nějaké menší změny. Asi by se to dalo přirovnat k rozdílu mezi Chrome a Chromium. Ale v reálu uzavřené ovladače od AMD nikdo z koncových zákazníků nepoužívá, a ani AMD je jim nijak netlačí. Jsou určené spíš pro byznys sféru typu hollywoodská animační studia, kde mají jisté výhody kvůli cílení na konkrétní renderovací programy a jejich postupy.

    Od Nvidie je to tedy fajn krok vpřed, ale do porovnatelného stavu s Intelem a AMD se zatím nemají šanci dostat, to by toho museli otevřít mnohem víc a změnit některé své přístupy. Tento krok může však zlepšit zážitek uživatelů používající Nouveau, a zároveň teoreticky zmírnit některé problémy při používání uzavřeného ovladače Nvidie na Linuxu.