Valve wants Steam to squash Arm gaming stutter before you even hit play
A powerful gaming PC can still stutter like hell. Now imagine your processor having to translate the gameās instructions while youāre playing it.
Thatās one of the challenges Valve faces in its fascinating push to bring Windows games to Arm chips. And the company has a clever plan to tackle it before you even hit Play.
āFEX code caching is vital for frame time consistency,ā Valve software engineer Pierre-Loup Griffais told PCWorld in an interview. āIn the future, it will also be integrated with Steamās Pre-Caching feature, so that cached code is available even prior to the first local run of an application.ā
Thatās a nifty trick when youāre trying to make thousands of Windows games run on processors they were never designed for. And it dovetails with a broader industry push to stamp out one of PC gamingās most infuriating problems.
Translating games without the hiccups
FEX is a crucial piece of Valveās ambitious effort to break Steam free from traditional gaming PCs. Most Windows games are built for x86 processors from AMD and Intel. Arm chips speak a different instruction language, so FEX translates x86 code into Arm instructions as games run.
Fortunately, FEX doesnāt have to translate everything.
āWhen provided with a proper ARM execution environment, such as when integrated with Proton ARM, FEX only translates the CPU code of the application,ā Griffais explained.

Steamās Pierre-Loup Griffais with PCWorldās Adam Patrick Murray
Foundry
Proton, Valveās Windows compatibility layer, can switch to native Arm execution at the Win32 API boundary. The operating system and graphics drivers run natively, too, leaving FEX to concentrate on the gameās own CPU instructions.
Griffais says the translation overhead is typically modest, especially in GPU-bound games. But a game running at 60 frames per second has roughly 16.7 milliseconds to finish each frame. If FEX runs into unfamiliar code and needs to translate it in the middle of gameplay, that extra work can chew through the frameās time budget and cause a hitch.
FEXās caching system helps sidestep that problem. Translated code can be saved and reused instead of being compiled again.
In September, the FEX developers introduced a persistent on-disk JIT cache that preserves translated code between sessions. Valve subsequently enabled the feature in Proton Experimental for Arm, with Griffais pointing to potential improvements in 1% low frame rates, particularly on repeat runs.
Those lows help expose the slow frames that average FPS figures can hide. They wonāt tell you everything about stuttering, but theyāre a lot more revealing than a big, shiny average frame rate number.
Steamās planned Pre-Caching integration takes the idea further. Instead of waiting for a game to run locally and build up its cache, Valve wants translated code ready before the first launch.
Thereās no announced timetable or published performance data for that integration yet. But avoiding translation-related hitches without requiring a faster processor? Thatās something PC gamers can get behind.
The PC industry has a stutter problem
Valve isnāt the only company trying to move expensive compilation work out of the middle of gameplay.
In October, I covered how Microsoft and Nvidia are attacking shader stutter through Advanced Shader Delivery. Supported games can receive shaders compiled for their particular hardware configuration rather than compiling everything locally. Intel has been working on a Graphics Shader Distribution Service to reduce compilation-related delays, too.
FEX tackles a different problem. Its cache stores translated CPU code, while those other systems deal with GPU shaders. The two arenāt interchangeable, and none of them will magically fix every source of stuttering. Games can still hitch because of asset streaming, CPU bottlenecks, or crappy optimization.
But the thinking behind them is similar: Get the expensive work out of the way before it interrupts your game.

Valveās work could help games run more smoothly on games with Arm-based processors, including Snapdragon Elite chips and Nvidiaās new RTX Spark platform (pictured).
A powerful gaming PC can still stutter like hell. Now imagine your processor having to translate the gameās instructions while youāre playing it.
Thatās one of the challenges Valve faces in its fascinating push to bring Windows games to Arm chips. And the company has a clever plan to tackle it before you even hit Play.
āFEX code caching is vital for frame time consistency,ā Valve software engineer Pierre-Loup Griffais told PCWorld in an interview. āIn the future, it will also be integrated with Steamās Pre-Caching feature, so that cached code is available even prior to the first local run of an application.ā
Thatās a nifty trick when youāre trying to make thousands of Windows games run on processors they were never designed for. And it dovetails with a broader industry push to stamp out one of PC gamingās most infuriating problems.
Translating games without the hiccups
FEX is a crucial piece of Valveās ambitious effort to break Steam free from traditional gaming PCs. Most Windows games are built for x86 processors from AMD and Intel. Arm chips speak a different instruction language, so FEX translates x86 code into Arm instructions as games run.
Fortunately, FEX doesnāt have to translate everything.
āWhen provided with a proper ARM execution environment, such as when integrated with Proton ARM, FEX only translates the CPU code of the application,ā Griffais explained.
Steamās Pierre-Loup Griffais with PCWorldās Adam Patrick Murray
Foundry
Proton, Valveās Windows compatibility layer, can switch to native Arm execution at the Win32 API boundary. The operating system and graphics drivers run natively, too, leaving FEX to concentrate on the gameās own CPU instructions.
Griffais says the translation overhead is typically modest, especially in GPU-bound games. But a game running at 60 frames per second has roughly 16.7 milliseconds to finish each frame. If FEX runs into unfamiliar code and needs to translate it in the middle of gameplay, that extra work can chew through the frameās time budget and cause a hitch.
FEXās caching system helps sidestep that problem. Translated code can be saved and reused instead of being compiled again.
In September, the FEX developers introduced a persistent on-disk JIT cache that preserves translated code between sessions. Valve subsequently enabled the feature in Proton Experimental for Arm, with Griffais pointing to potential improvements in 1% low frame rates, particularly on repeat runs.
Those lows help expose the slow frames that average FPS figures can hide. They wonāt tell you everything about stuttering, but theyāre a lot more revealing than a big, shiny average frame rate number.
Steamās planned Pre-Caching integration takes the idea further. Instead of waiting for a game to run locally and build up its cache, Valve wants translated code ready before the first launch.
Thereās no announced timetable or published performance data for that integration yet. But avoiding translation-related hitches without requiring a faster processor? Thatās something PC gamers can get behind.
The PC industry has a stutter problem
Valve isnāt the only company trying to move expensive compilation work out of the middle of gameplay.
In October, I covered how Microsoft and Nvidia are attacking shader stutter through Advanced Shader Delivery. Supported games can receive shaders compiled for their particular hardware configuration rather than compiling everything locally. Intel has been working on a Graphics Shader Distribution Service to reduce compilation-related delays, too.
FEX tackles a different problem. Its cache stores translated CPU code, while those other systems deal with GPU shaders. The two arenāt interchangeable, and none of them will magically fix every source of stuttering. Games can still hitch because of asset streaming, CPU bottlenecks, or crappy optimization.
But the thinking behind them is similar: Get the expensive work out of the way before it interrupts your game.
Valveās work could help games run more smoothly on games with Arm-based processors, including Snapdragon Elite chips and Nvidiaās new RTX Spark platform (pictured).