Valve's ambitions for ARM-based gaming on Linux are driving significant kernel-level work. Beyond funding FEX-Emu for running x86_64 binaries on AArch64 Linux, the company is backing efforts to improve how emulated games perform on ARM processors, a critical piece of the puzzle for getting Windows games running on the upcoming Snapdragon-powered Steam Frame.
André Almeida from Igalia, a consulting firm with deep ties to Valve's Linux initiatives, presented at the Linux Plumbers Conference on enhancing the kernel's Futex interfaces specifically for ARM64 emulation scenarios. The core problem lies with the existing get_robust_list and set_robust_list system calls, which assume native pointer sizes and only allow one list per task. This creates headaches when running 32-bit x86 applications on ARM64 kernels, since ARM64 lacks the compatibility entry points that x86_64 provides.
Almeida's solution involves new get_robust_list2 and set_robust_list2 system calls that address these architectural limitations. The patches are currently under review on the Linux kernel mailing list. Igalia has been working on multiple fronts for Valve, including open-source graphics support for the Steam Frame, HDR color management, and crash data collection on the Steam Deck. With additional 32-bit syscall challenges still facing FEX-Emu, more kernel work from Igalia seems likely as Valve continues building out ARM gaming on Linux.