Počítače

KWin si vzal kopie mezi grafikami na starost, v testu s externí kartou přibylo 23 snímků

Obraz ze hry běžící na externí grafice putoval na Linuxu do systémové paměti a zase zpátky, protože kompozitor uměl ohlásit jen jednu grafiku. Šestá verze protokolu linux-dmabuf tuhle okliku ruší a KWin ji má začleněnou pro Plasmu 6.8. Vývojář KDE na své sestavě naměřil v Cyberpunku 2077 skok z 27 na 50 snímků za sekundu.

· 15 zhlédnutí

Zavřený Framework Laptop 13 se šroubovákem od výrobce
Zavřený Framework Laptop 13 se šroubovákem od výrobce. Na notebooku téhle řady s externí grafikou v boxu vývojář KDE měřil. Foto: Thcipriani, Wikimedia Commons (CC BY-SA 4.0)

Kdo si k notebooku připojí grafickou kartu v externím boxu, čeká od ní výkon. Na Linuxu ho dosud dostával jen zčásti, a to z důvodu, který s výkonem té karty nemá nic společného: obraz se cestou na monitor dvakrát zbytečně zkopíroval. Vývojář KDE Xaver Hugl popsal 31. července na svém blogu, proč se to dělo a co s tím udělal.

Odkud se ty kopie berou

Na Waylandu si aplikace a kompozitor předávají hotové obrázky protokolem linux-dmabuf. Kompozitor ohlásí, kterou grafiku používá a jaké formáty od ní přijme; aplikace pak na téže grafice alokuje takzvaný dma-buf, tedy oblast paměti přístupnou přímo hardwaru, a pošle na ni odkaz.

Do páté verze protokolu ale kompozitor uměl ohlásit právě jednu grafiku. Když hra běží na jiné, jádro se snaží pomoct: při importu takového bufferu do druhé grafiky ho přesune do systémové paměti, aby se k němu dostaly obě. Systémová paměť je proti té na kartě pomalá a karta k ní chodí přes sběrnici PCIe, takže je z pomoci brzda. Ovladače Vulkanu a OpenGL to řeší po svém – když zjistí, že hra kreslí na jiné grafice, než jakou ohlásil kompozitor, udělají rovnou kopii do systémové paměti a pošlou tu.

Nepříjemné to začne být ve chvíli, kdy je monitor zapojený zpátky do té dedikované grafiky. Konektor HDMI je na spoustě notebooků vyvedený právě z ní, takže je to běžný případ. Obraz pak jde z dedikované grafiky do systémové paměti, odtud do integrované, ta z něj složí plochu – a výsledek se kopíruje zpět na dedikovanou grafiku. U externí karty, kterou spojuje s notebookem jediný kabel USB-C, nemusí pásmo stačit ani na jeden směr; na oba je to podle Hugla konec výkonu.

Šestá verze protokolu

Řešení zní jednoduše: ať ovladač kopie nedělá a předá kompozitoru původní buffer. Přesně kvůli tomu Hugl navrhl šestou verzi linux-dmabuf, ve které kompozitor ohlásí celý seznam grafik a aplikace u každého bufferu řekne, do které se má importovat. Podal ho podle Phoronixu v roce 2023; začleněný byl podle jeho vlastního textu něco přes dva roky nato a k uživatelům se dostal až ve vydání wayland-protocols 1.49 ze 7. června 2026.

Sám na tom nebyl. Victoria Brekenfeld ze System76 doplnila podporu do Mesy a do knihovny Smithay, na které stojí kompozitor Cosmic. V KWinu to znamenalo delší seznam práce: naučit ho, že grafik je víc než jen ty, na které se zobrazuje, zvládnout jejich připojení za běhu, sledovat, na které grafice který buffer leží, a postavit obecnou vrstvu pro kopie mezi nimi – a to tak rychlou, jako je dělá Mesa uvnitř sebe. Kvůli té rychlosti přidal Hugl do KWinu Vulkan; vedlejším produktem je základ, na kterém může jednou stát celý vulkanový vykreslovač.

Co to udělalo s čísly

Měřeno je to na jedné sestavě: notebook Framework 13, karta Radeon RX 5700 XT v externím boxu a monitor 5120 na 1440 bodů při 120 Hz zapojený do té karty. Jednoduchá zkušební aplikace vkcube na celou obrazovku běžela předtím na 55 snímcích za sekundu, potom na 120, což je strop monitoru.

Praktičtější je druhé číslo. Cyberpunk 2077 na nízké předvolbě dal se současnou Mesou 27 snímků za sekundu, s doplněnou podporou šesté verze protokolu 50. Dopočteno je to o 85 procent víc, Hugl sám v textu píše o víc než osmdesáti procentech. Podle něj hru nejspíš brzdí pásmo kabelu USB-C, takže s dalšími úpravami ovladače by rozdíl mohl být ještě větší.

Zprávu o té práci vydal Phoronix, u vkcube ale uvádí posun ze 40 na 120 snímků. V původním blogu stojí 55; odkud se vzalo to nižší číslo, se z textu poznat nedá.

Běžný notebook s dedikovanou grafikou Hugl změřit nemohl – nemá k dispozici ovladač Nvidie s podporou protokolu ani stroj s dedikovanou kartou AMD. Odhaduje, že tam bude zlepšení mírnější, řádově pět až deset procent. Je to jeho odhad, ne měření, a sám to tak píše.

Dvě omezení, která zatím platí

Skládat plochu bude KWin dál na „primární“ grafice, což je na notebooku obvykle ta, ke které byl při startu připojený vestavěný displej. Velký zisk se proto dostaví jen tam, kde hra dostane takzvaný direct scanout, tedy kde jde její obraz na monitor rovnou, bez míchání s ostatními okny. Huglova karta navíc neumí barevné pipeline, takže na ní to platí jen s vypnutým HDR, vypnutým nočním světlem a bez barevného profilu. Žádost o začlenění, která má tohle omezení sundat, má připravenou a slibuje o ní druhý díl.

Větší překážka je jinde: většina her běží pořád přes X11. Zavést protokol užitečným způsobem do Xwaylandu je podle Hugla kvůli předpokladům, se kterými X11 pracuje, nesmírně těžké – a nemá jistotu, jestli je to vůbec proveditelné. Kdo chce zrychlení dnes, musí hru přimět mluvit Waylandem přímo: u nativních titulů často stačí proměnná SDL_VIDEODRIVER=wayland, u windowsových her forky Protonu s ovladačem Wine Wayland.

Stav ostatních kusů skládačky je nestejný. Implementace v KWinu je začleněná, ta v Mese má podle autora přijít brzy a Nvidia ji ve svém ovladači má, ale zatím nevydala. Bez ovladačové poloviny se z toho na cizím počítači nic neprojeví.

Proč to není jen věc KDE

Protokol je společný, ne kdéčkový: podporu do Mesy i do Smithaye psal někdo úplně jiný a Cosmic ji má z téhož zdroje. Zrychlení tedy nemíří na uživatele jednoho prostředí, ale na každého, kdo hraje přes Wayland na jiné grafice, než na které skládá plochu kompozitor.

Podle nás je na celé věci nejzajímavější, jak dlouho to trvalo. Dva roky od návrhu do začlenění protokolu a k tomu práce v jádru KWinu kvůli sledování grafik a chování při resetu – to všechno kvůli tomu, aby se přestala dělat kopie, kterou nikdo nechtěl. Sám autor to zařadil jako první díl; hotovo tedy ještě není.

Zdroje: Fixing Multi-GPU performance, part 1 na blogu Xavera Hugla z 31. července 2026, zpráva Phoronixu z 1. srpna 2026 a oznámení vydání wayland-protocols 1.49.

Počítače

Diskuse

Zatím tu nikdo nediskutuje.

Diskutovat mohou přihlášení čtenáři – přihlaste se nebo si založte účet.

← zpět na výpis