Emulátor FEX si v Protonu Experimental pro ARM ukládá přeložený kód her na disk
Přeložený kód, který emulátor FEX na procesorech ARM vyrábí z instrukcí x86, si Proton Experimental nově nechává na disku. Oznámil to 27. září 2026 Pierre-Loup Griffais z Valve; podle něj se má zlepšit jedno procento nejhorších snímkových časů, hlavně při opakovaném spuštění téže hry. Kolik to dělá, Valve neuvádí.
Hry pro Windows běží na počítačích a brýlích s procesorem ARM tak, že jejich kód pro x86 překládá do instrukcí ARM64 emulátor FEX. Tenhle překlad se dosud dělal při každém spuštění znovu. Od 27. září 2026 si Proton Experimental v sestavení pro ARM jeho výsledky nechává na disku.
Oznámil to Pierre-Loup Griffais, vývojář Valve, příspěvkem na Bluesky. V překladu: „Keš kódu FEXu je teď na Protonu Experimental (ARM) zapnutá a měla by zlepšit jedno procento nejhorších snímkových časů, zvlášť při dalších spuštěních.“ Víc k tomu nenapsal.

Keš vymění čas procesoru za místo na disku
FEX se sám popisuje jako rychlý uživatelský emulátor x86 a x86-64 pro ARM64 Linux. Pracuje jako JIT: kus kódu přeloží, až když na něj dojde řada, a hotový blok si drží v paměti procesu. Jakmile hra skončí, je ta práce pryč. Diskovou keš označil projekt v poznámkách k vydání FEX-2601 za obchod: čas procesoru za místo na disku, s tím, že kód nalezený v keši ušetří zadrhnutí při překladu.
Zapíná ji volba DiskCache, která má v definici konfigurace výchozí hodnotu vypnuto. Vedle ní stojí devět dalších. DiskCacheMaxFileSize drží hlavní soubor keše pod jedním gigabajtem, DiskCacheFileMapping soubory mapuje kvůli rychlejšímu čtení a DiskCachePruneStaleEntries při startu maže záznamy, které vyrobily starší verze FEXu. Do keše se přitom nedostane všechno: DiskCacheRelocationFilter záměrně vynechává bloky s relokacemi mířícími mimo známé oblasti.
Od prvního kódu k zapnutí uplynulo devět měsíců
Poznámky k vydání FEX-2512 z prosince 2025 hlásí první podporu takzvaných code map a generování keše předem, a rovnou přiznávají, že uživatel z toho zatím nemá nic. O měsíc později přibylo ve FEX-2601 generování i načítání za běhu, na Linuxu i ve Wine, pořád označené jako rozdělaná práce. Do Protonu se FEX dostal v dubnu 2026: seznam změn uvádí u vydání Proton 11.0-1 řádek o FEX-2605 pro sestavení ARM64EC.
Poslední krok před zapnutím je vidět v repozitáři FEXu. 25. září 2026 se sloučil pull request 5989, po kterém si FEX staré záznamy keše uklidí sám; jeho autor Ryan Houdek do popisu napsal přímo Griffaisovi, že by to mělo jeho případ pokrýt. Den po oznámení, 28. září, prošel pull request 5995 a zapnul DiskCache ve výchozí konfiguraci, se kterou FEX běží jako nástroj kompatibility Steamu. To je jiná cesta než Proton, ale týž přepínač.
Čísla v oznámení nejsou
Griffais neuvedl, o kolik se ten nejhorší procentil zlepšil, na které hře se to měřilo ani kolik místa keš zabere. Nezávislé měření zatím nikdo nezveřejnil. Sledovací úkol 5125 v repozitáři FEXu vede seznam dvaceti položek, které si projekt kolem keše zapsal; pár z nich už odbavil, ale komprese na disku, generování ve víc vláknech ani trvalé mapování keší mezi nimi zatím nejsou. Vlastní položku má i to, že hlavička keše vyhrazuje na číslo verze osm bajtů, a rozložení složek na disku má samostatný úkol 5116.
Jedna zapsaná věc se dotkne i hráče, který o keši nic neví: přesun složky RootFS podle toho seznamu zneplatní code mapy, tedy záznamy, ze kterých se keš staví.
Kde se to projeví
Změna je zatím jen v Protonu Experimental, tedy tam, kam Valve dává úpravy dřív, než se dostanou do číslovaného vydání. O stabilním Protonu 11 v oznámení nic nestojí. Nejvíc jde o brýle Steam Frame s čipem Snapdragon 8 Gen 3, kde je ARM64 jediná architektura, jakou hry pro Windows dostanou, a kde se tedy přes FEX překládá úplně všechno.
Keš se plní tím, že se hraje. První spuštění hry proto zůstane stejně trhané jako dosud a rozdíl se pozná až napodruhé.
Zdroje: příspěvek vývojáře Valve na Bluesky, repozitář FEX-Emu/FEX (poznámky k vydáním, definice konfigurace, pull requesty 5989 a 5995, úkoly 5116 a 5125), seznam změn Protonu a zpráva serveru GamingOnLinux.