Patche mají v Nouveau zapnout atomické nastavování obrazu. Vypnuté bylo devět let
Otevřený ovladač NVIDIA pro Linux umí atomické nastavování obrazového režimu od jádra 4.10, ale ve výchozím stavu ho nemá zapnuté. Sérii patchů, která to mění, poslala Lyude Paul z Red Hatu; poslední z pěti verzí odešla 30. července. Podle Phoronixu se změna do jádra 7.3 nejspíš nedostane.

Nouveau, otevřený ovladač grafických karet NVIDIA v jádře Linuxu, umí atomické nastavování obrazového režimu od roku 2016. Kdo ho chce, musí ovladač zavést s parametrem nouveau.atomic=1; jinak zůstane vypnutý. Sérii pěti patchů, které tohle výchozí nastavení obracejí, poslala Lyude Paul z Red Hatu do konference dri-devel; poslední verze odešla 30. července.
Co se v kódu mění
Vlastní změna je drobná. Poslední patch série přepíše výchozí hodnotu proměnné nouveau_atomic z nuly na minus jedničku a popis parametru z „default: disabled“ na „default: auto“. Podmínka, která ovladači přidává příznak DRIVER_ATOMIC, se z if (nouveau_atomic) mění na if (nouveau_atomic != 0). Celá série sahá na dva soubory, přidává 22 řádků a 19 jich ubírá.
Přepínač zůstává. „Modulový parametr zatím ponecháme, protože jeho vypnutí může pomoct, kdybychom narazili na regrese,“ píše Paul v patchi (přeloženo). Kdo tedy na atomickém nastavování narazí a bude mu vadit, zavede ovladač s nouveau.atomic=0 a je zpátky na starém chování.
Proč to zůstalo vypnuté
Atomické rozhraní do Nouveau přinesl commit Bena Skeggse ze 4. listopadu 2016, který se do jádra dostal ve verzi 4.10. Týž commit zavedl i parametr atomic s výchozí nulou a Skeggs v popisu napsal proč: „Atomické ioctl tímhle zatím ve výchozím stavu nezpřístupňujeme, protože testování proběhlo jen omezeně“ (přeloženo). Pak uplynulo devět let a skoro devět měsíců a výchozí hodnota zůstala nulová.
Paul to v úvodní zprávě série vysvětluje tím, že v době, kdy Skeggs kód psal, nebylo moc na čem atomické nastavování zkoušet. Dnes je to podle ní norma, kdežto podpora neatomických ovladačů v uživatelském prostoru začíná chátrat a nese si vlastní chyby; řada z nich podle ní zmizí právě zapnutím atomického režimu. Sama ho na svých strojích běžně používá; jedinou potíž, kterou uvádí, je blikání obrazovky na jejím stolním počítači, u kterého si ale není jistá, že s atomickým režimem vůbec souvisí.
Co atomické nastavování dělá
Nastavování obrazového režimu v jádře znamená, že rozlišení, obnovovací frekvenci a rozvržení obrazových vrstev nastavuje jádro, ne grafický server nad ním. Starší cesta k tomu používá řadu samostatných volání: zvlášť se nastaví režim, zvlášť se přehodí obrazová vrstva, zvlášť kurzor.
Atomické rozhraní posílá celé nastavení jako jednu transakci, takže buď projde všechno, nebo nic. Kompozitor si navíc může kombinaci nechat nejdřív jen ověřit, aniž by ji provedl. Do jádra se dostalo ve verzi 4.0 jako schopnost DRM_CLIENT_CAP_ATOMIC a od verze 4.2 ji podle dokumentace jádra podporují všechny ovladače, které atomické nastavování zvládají. Praktický dopad, který Phoronix zmiňuje, je méně blikání při přepínání a spolehlivější chování na moderním linuxovém desktopu.
Kterých karet se to týká
Změna platí pro rodinu NV50 a novější. Podle seznamu kódových jmen projektu Nouveau je to architektura Tesla, tedy GeForce 8, 9, 100, 200 a 300, plus všechno novější. Čipy pod hranicí NV50 zůstávají beze změny; atomické nastavování pro ně nikdy nikdo nenapsal.
Právě kvůli nim je v sérii čtvrtý patch. Dosud si ovladač na příkaz nouveau.atomic=1 nastavil příznak DRIVER_ATOMIC i na hardwaru, který atomický režim neumí. Nově se to na starých čipech zakáže a ovladač místo toho vypíše varování, že je potřeba NV50 nebo novější. Druhý patch série přidává hodnotu parametru nouveau.atomic do ladicího výpisu ovladače, takže z hlášení jádra bude poznat, v jakém režimu ovladač jede.
Pět verzí za jeden den
První verze série odešla večer 29. července a měla čtyři patche v jediném souboru. Za necelý den ji vystřídaly další čtyři: přibyla oprava chyby v uklízení po neúspěšném zavedení ovladače, druhý patch se přepracoval na zacházení se strukturou drm_driver a kontrola generace čipu se přesunula z konkrétního modelu na rodinu. Celý sled i s reakcemi vydá hledání v archivu konference dri-devel.
Kdy se změna dostane do vydaného jádra, jisté není. Phoronix soudí, že vzhledem k načasování na cyklus jádra 7.3 nejspíš nedosáhne, a doufá, že přistane krátce po něm.
Zdroje
- Lyude Paul: [PATCH v5 0/5] Enable atomic modesetting by default, dri-devel, 30. července 2026
- Lyude Paul: [PATCH v5 5/5] drm/nouveau/kms/nv50-: Enable atomic modesetting by default, dri-devel, 30. července 2026
- Ben Skeggs: drm/nouveau/kms/nv50: transition to atomic interfaces internally, jádro Linuxu, 4. listopadu 2016
- Dokumentace jádra Linuxu: Userland interfaces (DRM_CLIENT_CAP_ATOMIC)
- Nouveau: CodeNames (přiřazení NV50 ke generacím GeForce)
- Phoronix: Nouveau Preparing To Finally Enable Atomic Mode-Setting By Default, 31. července 2026