A FEX Emulátor 2508-as kiadásában jelentős teljesítménynövekedést sikerült elérni

A FEX Emulátor 2508-as kiadása olyan jelentős teljesítménynövekedést hozott, amely mellett lehetetlen szó nélkül elmenni. Az elért eredményekről a fejlesztők egy blogbejegyzésben számoltak be. A FEX-Emu (röviden FEX) egy nyílt forráskódú emulátor, amely lehetővé teszi x86-64 (amd64) Linux binárisok futtatását AArch64 (ARM64) architektúrán futó Linux rendszereken — például Apple M1/M2/M3 chipeken, Raspberry Pi 4/5-ön vagy más ARM64-es Linuxos gépeken. A hónap fejlesztéseinek középpontjában a JIT fordító optimalizálása állt, különösen a hívás-visszatérés veremkezelés átalakítása révén, amely mostantól képes az ARM architektúrák saját predikciós hardverét kihasználni. Ez a technikai áttörés önmagában képes volt akár 39%-os FPS növekedést elérni Cyberpunk 2077 alatt, de más játékoknál, például a God of Warnál is tapasztalhatók kisebb, de stabil gyorsulások.

A FEX Emulátor 2508-as kiadásában jelentős teljesítménynövekedést sikerült elérni

AJIT optimalizálás és FPS-robbanás

A FEX 2508 egyik legnagyobb vívmánya a dinamikus fordító, azaz a JIT (Just-In-Time) motor újraszervezése, amely a gyakorlatban több játék esetében drámai teljesítményjavulást eredményezett. A legnagyobb nyereség a hívás-visszatérés verem optimalizálásból fakad, amely immár kihasználja az ARM processzorok saját hívás-előrejelző hardverét. Ez a változtatás nemcsak gyorsabb kódvégrehajtást biztosít, hanem mérhető FPS-növekedést is hozott, például a Cyberpunk 2077 esetében csaknem 39%-kal nőtt az átlagos képkockaszám.

FPS növekedés a 2507.1 verzióhoz képest

A God of War és más címek is profitáltak a fejlesztésekből, bár a javulás mértéke változó maradt. A JIT motor ezen kívül már nem hajt végre szükségtelenül ismételt kódfordításokat sem, mivel a több blokkot tartalmazó rendszert egyszerűsítették: minden blokk önállóan fordul és csak egyszer. Ennek köszönhetően a játékok indítása és futtatása egyaránt gyorsabbá és hatékonyabbá vált.

FPS Átlagok a előző és a jelenlegi kiadásban

Architekturális fejlesztések és biztonsági rétegek

A fejlesztések azonban nem álltak meg a nyers sebességnél. Az Apple Silicon chipeken futó wow64/arm64ec Wine-útvonal mostantól képes használni az adott hardver TSO (Total Store Order) támogatását is, amely eddig nem volt elérhető ebben az emulációs útvonalban. Ez érezhető teljesítménynövekedést hozhat azoknak, akik macOS alatt próbálkoznak Windows-játékok futtatásával ARM64 rendszeren. Ezzel párhuzamosan megvalósult a modern processzorokban régóta jelen lévő NX bit emulációja is, amely megakadályozza, hogy végrehajthatatlan memóriaterületen kód fusson. Egy konkrét játék – amely vélhetően a NaCL-t használta – ezt a biztonsági funkciót explicit módon ellenőrizte, és korábban emiatt nem működött megfelelően FEX alatt. Mostantól ez a kompatibilitási akadály is elhárult.

Másolásvédelem, önmódosító kód és haladó tesztelés támogatás

A kiadás további figyelemre méltó aspektusa a másolásvédelmi és önmódosító technikák célzott támogatása, amelyekre néhány játék, például a Peggle Deluxe és a Crysis 2: Maximum Edition is támaszkodik. Eddig ezek a trükkös kódrészletek véletlenszerűen, kiszámíthatatlanul működtek, most viszont explicit támogatást kaptak a FEX-ben. Elképzelhető, hogy ezek a fejlesztések némelyik Denuvo-védelem működését is lehetővé teszik ARM64-en, bár ez játékonként eltérhet. A fejlesztők emellett új eszközöket kínálnak a haladó felhasználóknak: a wow64/arm64ec DLL fájlokat mostantól automatikusan feltöltik minden GitHub-commithoz, lehetővé téve a napi snapshot build kipróbálását azok számára, akik a legfrissebb fejlesztéseket szeretnék használni. A stabilabb felhasználás továbbra is a Launchpad PPA-n keresztül ajánlott, de az újdonságok felfedezésére nyitott közösség most még mélyebb betekintést nyerhet a FEX működésébe és potenciáljába.