Port ovladače RADV na Windows rozběhal Counter-Strike 2. Tuhle fázi zaplatil Valve
Konzultační firma Collabora popsala 28. července, jak daleko se dostal pokus přenést RADV, otevřený ovladač Vulkan pro grafické karty AMD, z Linuxu na Windows. Práci na téhle fázi platí Valve. Ovladač zatím neprochází certifikačními testy, ale první hru už rozběhal.
Grafické karty AMD mají v Linuxu ovladač Vulkan, který nepsal jejich výrobce: RADV z projektu Mesa. Postupně se z něj stala výchozí volba a AMD kvůli němu ukončilo vlastní alternativu postavenou na knihovně PAL, aby své otevřené úsilí soustředilo právě do Mesy. Na Windows přitom majitelé Radeonů dodnes nemají nic jiného než uzavřený ovladač od AMD. Konzultační firma Collabora zveřejnila 28. července zprávu o pokusu ten rozdíl smazat. V poděkování na konci textu uvádí, že tuhle fázi práce zaplatil Valve.

Proč by měl otevřený ovladač zajímat i uživatele Windows
Autor zprávy Louis-Francis Ratté-Boulianne vypisuje, co by se získalo: jedna kódová základna pro obě platformy, snazší ladění a pokusy, rychlejší opravy a možnost, aby chyby hlásili nebo opravy posílali lidé mimo AMD, třeba vývojáři her. Oprava by pak platila bez ohledu na operační systém.
Valve na tom má praktický zájem. Firma už dnes platí několik vývojářů pracujících na RADV a na dalších částech linuxové grafické vrstvy; podle serveru Phoronix má ovladač velký podíl na tom, jak dopadl Steam Deck a nově Steam Machine.
Privátní data, která nikdo nepopsal
Projekt navazuje na práci Faith Ekstrand. Ta proveditelnost zkoumala jako první a výsledky přednesla na konferenci XDC 2024. Podstatné zjištění: od Windows 10 existuje rozhraní WDDM2, které slušně popisuje, jak spolu má mluvit ovladač v uživatelském prostoru (UMD) a ovladač v jádře systému (KMD).
Háček je v tom, že spousta volání s sebou nese privátní data výrobce. Jsou to neprůhledné bloby, jejichž obsah si určuje ovladač sám, takže obě poloviny zůstávají pevně svázané a rozhraní mezi nimi není nikde zdokumentované. Ekstrand kvůli tomu napsala nástroj wddm2-pdd-re, který u vybraných aplikací D3D12 zaznamenává volání i obsah těch dat. Zpětným rozborem se dostala tak daleko, že RADV dokázal poslat práci uzavřenému ovladači v jádře, a na obrazovce se jí nakonec otočil trojrozměrný model.
Od modelu k první hře
Collabora si k tomu vytkla tři cíle: ubrat napevno zadané hodnoty, aby ovladač zvládl různý hardware, rozběhat ho přímo na Windows místo v prostředí WSL a hlavně ho stabilizovat. Dosavadní verze totiž padala po dvou minutách testů deqp-vk. Přibylo zpracování command streamu a synchronizace, dále sparse bindings, tessellation, task shadery a dynamické zjišťování vlastností karty.
Zpráva výsledek neuhlazuje. Ovladač pořád není konformní, i když úspěšnost testů podle Collabory výrazně stoupla. Zato na něm běží první hra: Counter-Strike 2. Podle zprávy si to s tímhle ovladačem může zkusit každý, stačí hru spustit s parametrem -vulkan.
Kde to drhlo
Collabora pracovala na Radeonu RX 7900 XT, kdežto Ekstrand na RX 7800 XT, a rozdíly mezi kartami znamenaly, že se cizí výsledky dlouho nedařilo zopakovat. Jakmile se zkusilo něco víc než vyplnit plochu napevno zadanou barvou, karta se zasekla. Nástroje na ladění takových zásek na Windows nejsou, takže si je museli postavit sami: z reverzní utility udělali plnou logovací vrstvu WDDM2, která umí rozebrat libovolnou aplikaci běžící pod oficiálním ovladačem Vulkan, a přidali výpis command streamů, registrů a kódu shaderů.
Druhá potíž byla přízemnější. Mesa se vyvíjí hlavně proti překladačům GCC a Clang a spoléhá na předpoklady, které u Microsoftího MSVC neplatí. Zpráva jmenuje zacházení s výčtovými typy: MSVC umí hodnotu vzít jako znaménkovou a omezit ji na 32 bitů, což vede k překvapivému chování.
Bez AMD se dál nepokročí
Největší otevřená otázka je právě rozhraní k uzavřenému ovladači v jádře. Psát vlastní KMD Collabora za reálnou možnost nepovažuje, takže musí mluvit s tím od AMD. Dnes to stojí na zpětně odvozené znalosti privátních datových struktur, a to je křehké ze své podstaty: uživatelská a jádrová část se dodávají jako pár, žádnou zpětnou kompatibilitu si neslibují a struktury se můžou změnit s libovolnou novou verzí ovladače bez ohlášení.
Aby byl RADV na Windows opravdu stabilní a udržovatelný, potřebuje podle Collabory jedno ze dvou. Buď stabilní a zdokumentované rozhraní k uzavřenému ovladači v jádře, nebo mezivrstvu, která komunikaci zprostředkuje a udrží tvar i tehdy, když se bloby pod ní změní.
Druhá nedodělaná oblast je zobrazení hotového snímku. RADV na Windows zvládá zatím jen pomalejší cestu přes procesor. Použití swapchainů DXGI by vyžadovalo umět importovat obraz z D3D12 a poslední stupeň, výměna snímků bez kopírování, by podle zprávy mohl u aplikací neomezených výkonem karty přinést až trojnásobek. Ten krok už se ale neobejde bez přímé účasti AMD a nejspíš i Microsoftu.
Co je vidět v repozitáři
Kód leží ve větvi wddm2 ve vlastní kopii Mesy na GitLabu freedesktop.org. Commitů s datem 23. července 2026 je tam čtyřicet, třiatřicet od Ratté-Boulianna a sedm od Ekstrand. Větev končí commitem, jehož název začíná slovem HACK, což o stavu práce vypovídá podobně jako celá zpráva.
Podle nás je tohle zajímavější jako signál než jako software. Použitelný ovladač z toho zatím není a Collabora si to nenamlouvá; smysl té práce je ukázat AMD, že o otevřený Vulkan na Windows je zájem, a že dokud výrobce nedodá popsané rozhraní, zbývá jen zpětné odvozování cizích datových struktur.
Zdroje: Cracking Windows Open: Porting RADV to WIN32 na blogu Collabory, zpráva Valve Sponsors Work Bringing Open-Source RADV Driver To Windows na Phoronixu a větev wddm2 v repozitáři Mesy.