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

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í.

· 77 zhlédnutí

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.

Stránka pull requestu 5995 v repozitáři FEX na GitHubu s jedním přidaným řádkem konfigurace
Sloučený pull request 5995 v repozitáři FEX-Emu/FEX. Celá změna je jediný přidaný řádek: volba DiskCache dostala v konfiguraci pro Steam hodnotu 1. Foto: vlastní snímek obrazovky, github.com (snímek obrazovky)

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.

Hry

Valve Proton ARM Steam Frame FEX

← zpět na výpis