Valve plans to link FEX’s persistent cache of translated x86 code with Steam Pre-Caching, so the code could be ready before an application’s first local run. Valve software engineer Pierre-Loup Griffais described the future integration in an interview reported by PCWorld on November 7, 2026. In that report, PCWorld said Valve had announced no timetable and that no performance results had been published for the integration.
The plan fits into Valve’s broader exploration of SteamOS on Arm hardware, including its work to extend SteamOS support beyond a single device, which NeoTeo covered previously.
The intended change is timing: translated CPU code could be ready before the first local run, while other sources of game stutter remain separate.
How Steam Pre-Caching could change the first run
FEX translates an application’s x86 CPU instructions into Arm instructions. In an appropriate Arm environment such as Proton ARM, the operating system and graphics drivers can run natively while FEX handles the application’s CPU code. Just-in-time, or JIT, translation generates machine code as the application needs it; if that work happens during gameplay, it can take time from a frame and cause a hitch.
At 60 frames per second, each frame has about 16.7 milliseconds. Valve’s plan would make FEX’s translated code available before an application’s first local run, moving that preparation ahead of launch. The integration remains a future plan, not a published performance result.
What FEX’s persistent cache stores
FEX 2609 describes an optional disk cache that stores generated JIT code in a FOZ-format database and looks it up on later runs. The release note lists FEX_DISKCACHE=1 and the DiskCache JSON option for configuring FEX’s cache. These are FEX configuration options; Valve has not described them as Steam controls. FEX 2609 release notes
FEX 2610 also added an optional in-memory cache for frequently used code blocks. FEX describes it as useful when repeated JIT calls cause stutter and spare memory is available. FEX 2610 release notes
What happens at the 1GB cache limit
FEX 2610 sets the disk cache’s default limit at 1GB. When it reaches that ceiling, FEX stops storing more code; the limit can be changed through INI options. The release also says FEX removes old disk caches that are no longer relevant after an upgrade.
For ELF files that contain an embedded GNU build ID, FEX uses that ID as a partial cache key. This can help avoid reusing an outdated cache when a file is replaced. FEX 2610 release notes
CPU translation and GPU shaders address different work
FEX’s cache stores translated CPU code. GPU shader caching and distribution address shader work instead, so the two approaches target different sources of stutter. Asset streaming, CPU bottlenecks, game optimization and differences between Arm and desktop GPUs can also affect frame pacing. The planned Steam integration does not by itself address those separate causes.