Přeskočit na obsah
Tech-Blog Chatujme.cz Chatujme.cz
Hry

Ovladač RADV umí v Mese 26.3 zdržet hru tak, aby obraz dřív odpověděl na myš

Mesa 26.3 vyšla 9. listopadu 2026 a ovladač RADV pro karty AMD v ní poprvé umí rozšíření VK_AMD_anti_lag. Měří dobu snímku i zpoždění ve frontě a podle toho hru před čtením vstupu na chvíli uspí. Dosavadním řešením byla volitelná vulkanová vrstva, kterou si musel uživatel zapnout proměnnou prostředí; ta je teď smazaná.

· 0 zhlédnutí

Grafická knihovna Mesa vyšla 9. listopadu 2026 ve verzi 26.3.0 a ovladač RADV, který na Linuxu obsluhuje karty AMD ve Vulkanu, v ní poprvé umí rozšíření VK_AMD_anti_lag. Je to vulkanová podoba funkce, kterou AMD na Windows nabízí pod jménem Anti-Lag: ovladač brzdí procesor, aby se nedostal před grafickou kartu dál, než je nutné, a zkracuje tím dobu mezi pohybem myši a změnou obrazu.

Klávesnice a myš na stole herního koutku, za nimi dva vypnuté monitory
Klávesnice a myš na stole herního koutku, monitory za nimi jsou vypnuté. Prodleva mezi pohybem myši a obrazem je přesně to, co má rozšíření VK_AMD_anti_lag zkrátit. Foto: Shixart1985, Wikimedia Commons (CC BY 2.0)

Jedna funkce, kterou hra volá před čtením vstupu

Rozšíření přidává do Vulkanu jedinou funkci, vkAntiLagUpdateAMD. Hra ji podle návrhu volá těsně předtím, než začne zpracovávat vstup z myši a klávesnice. Ovladač ji v tu chvíli smí pozdržet, podle specifikace ale jen na omezenou dobu, a pustit dál až tehdy, kdy to podle jeho měření vychází nejlíp. Celé rozšíření sepsalo AMD, poslední změnu má datovanou 6. června 2024 a od té doby je ve stavu revize 1.

Druhý parametr se jmenuje maxFPS a je to prostý strop snímkové frekvence. Když ho hra nastaví, funkce čeká tak dlouho, aby se zadaný počet snímků za sekundu nepřekročil; nula strop vypíná. Vedle toho smí hra ohlásit i pořadové číslo snímku, a to dvakrát: jednou ve stavu VK_ANTI_LAG_STAGE_INPUT_AMD před čtením vstupu, podruhé ve stavu VK_ANTI_LAG_STAGE_PRESENT_AMD před odesláním hotového snímku na obrazovku. Obě hlášení mají nést totéž číslo, aby ovladač věděl, který vstup se kterým snímkem dostal ven.

Zapnutí a vypnutí řídí trojice hodnot. RADV s nimi ale nenakládá přesně tak, jak by se z názvů dalo čekat:

HodnotaCo znamená podle návrhuJak se zachová RADV
VK_ANTI_LAG_MODE_DRIVER_CONTROL_AMDrozhodne nastavení ovladačezapne
VK_ANTI_LAG_MODE_ON_AMDzapnutozapne
VK_ANTI_LAG_MODE_OFF_AMDvypnutovypne

Ve zdrojovém kódu to je jedna podmínka: cokoli jiného než OFF znamená zapnout. Žádné vlastní nastavení, kterým by se dala třetí hodnota rozhodnout jinak, RADV zatím nemá.

Jak dlouhé zdržení ovladač spočítá

Pod rozšířením je nová obecná část vulkanového běhu Mesy, vk_frame_pacer. Ta měří dvě věci: dobu snímku, tedy čas od prvního odeslání práce na kartu po jeho vykreslení, a zpoždění ve frontě, tedy jak dlouho práce čeká, než se jí karta ujme. K tomu si bere kalibrované časové značky při odeslání i při začátku zpracování na kartě.

Vlastní zdržení pak implementace v RADV spočítá jako průměrnou dobu snímku plus zpoždění ve frontě, od čehož odečte odchylku doby snímku, nejvýš ale jednu milisekundu. Ta odečtená část je schválně ponechaná rezerva, aby se karta nevyprázdnila a neměla chvíli co dělat. Průměr doby snímku je klouzavý s vahou jedné poloviny, odchylka s vahou jedné osminy; časové značky se znovu kalibrují každých osm sekund. U vzorce pro zpoždění ve frontě stojí v komentáři rovnou, že vznikl zkoušením a že se ještě může změnit.

Z volitelné vrstvy do ovladače

Mesa uměla totéž rozšíření už dřív, ale jinak: jako vulkanovou vrstvu VK_LAYER_MESA_anti_lag, kterou si uživatel musel zapnout proměnnou prostředí ENABLE_LAYER_MESA_ANTI_LAG. Vrstva se do Mesy dostala v létě 2025 a její výhodou bylo, že rozšíření nabídla jakémukoli ovladači. Nevýhodou bylo právě to zapínání a to, že vrstva stojí mimo ovladač a o jeho vnitřním měření nic neví.

Změna číslo 42048 ji proto smazala a nahradila dvojicí: sdíleným měřicím rámcem ve vulkanovém běhu Mesy a vlastní implementací v RADV, která má 152 řádků. Napsal ji Daniel Schürmann, otevřená byla 5. června 2026 a začleněná 8. října 2026, obsahuje šest commitů a nový soubor v RADV nese copyright firmy Valve. RADV rozšíření hlásí všem kartám, které obsluhuje, bez jakékoli podmínky na generaci čipu.

Hra si o to musí říct

Sama od sebe funkce nic neudělá. Dokud ji hra nezavolá, ovladač neví, kdy začíná zpracování vstupu, a nemá co načasovat. Návrh rozšíření to rozlišuje sám: základní Anti-Lag podle něj brzdí procesor bez součinnosti hry, kdežto Anti-Lag+ chce, aby hra ohlásila začátek zpracování vstupu. Vulkanové rozšíření přenáší právě tu druhou část.

Volání se už v několika projektech najde. Gaijin má ve svém herním enginu Dagor samostatný soubor pro AMD Anti-Lag; modifikace OptiScaler rozšíření podstrkuje hrám, které o něm nevědí. Seznam her, kde to na Linuxu zabere, je zatím krátký a nikdo ho nevede.

Co je v Mese 26.3 kromě toho

Poznámky k vydání mají v oddílu nových funkcí 92 položek a v oddílu oprav 182 chyb. Seznam změn jmenuje 290 autorů a u každého počet commitů; dohromady jich je 5 765. Z těch 92 položek jich 24 patří ovladači panvk pro čipy Arm Mali, 23 ovladači pvr pro Imagination a 22 ovladači etnaviv pro Vivante. RADV má v seznamu tři: vedle Anti-Lagu zpětnou vazbu při kódování videa a údržbové rozšíření pro kooperativní matice.

Poznámky samy píšou, že 26.3.0 je vývojové vydání a komu jde o stabilitu, má zůstat u předchozí verze nebo počkat na 26.3.1. U funkce, která hře aktivně přidává čekání, to podle nás platí dvojnásob.

Autor změny v ní zmínil ještě jednu věc: na témže měřicím rámci by podle něj šlo postavit i VK_NV_low_latency_2, tedy vulkanový základ technologie Reflex od NVIDIE. Tu dnes na Linuxu zprostředkovává ovladač NVIDIA přímo Protonu, taky bez přídavné vrstvy.

Zdroje

Hry

Linux Ovladače AMD Vulkan Mesa

← zpět na výpis