Besides Valve funding FEX-Emu for x86_64 binaries to run on AArch64 Linux as part of their Steam Play (Proton) efforts in being able to get Windows x86/x64 games running on AArch64 SteamOS for the Snapdragon-powered Steam Frame, there is also work happening in kernel-space to help this emulated gaming experience on AArch64.
André Almeida of consulting firm Igalia, which has been longtime partners with Valve on their Linux engineering efforts, presented at the Linux Plumbers Conference last weekend on enhancing the Linux kernel’s Futex interfaces for helping ARM64 with an emphasis on a better emulated gaming experience. Igalia has also been helping Valve with the open-source graphics support for the Steam Frame, the color management pipeline / HDR initiatives, and other efforts like crash data collection on the Steam Deck.
For helping emulated gaming on ARM64 Linux, they have been working to create new interfaces for overcoming existing shortcomings of the set_robust_list / get_robust_list system calls. The LPC 2025 talk abstract sums it up as:
“Emulators and translation layers have been pushing the limits of the existing syscalls and Linux APIs, creating the need for new interfaces. One of such interfaces is the get/set_robust_list() syscall.
This syscall gets as an argument a user pointer to a user linked list. This syscall assumes that the pointer size is the native size, depending on the kernel build. This doesn’t works when running a x86-32 bit application in an ARM64 kernel, that doesn’t have the compat entry point as x86-64 does.
Also, only one list per task is allowed, so any emulator that wants to support robust lists needs to give up either their own list or the emulated app list.”
Almeida has been working on new get_robust_list2 / set_robust_list2 system calls to address the shortcomings of the original syscalls. The patches in current form can be found on the Linux kernel mailing list where they continue undergoing review/discussion.
Those wanting to learn more about this kernel effort for ultimately helping FEX-Emu and in turn the Steam Play gaming experience for Windows games on AArch64 Linux can see the PDF slide deck for more details.
There are also other system call headaches for FEX-Emu in dealing with 32-bit so we’ll see what other work Igalia engineers may pursue next for helping Valve’s Linux gaming conquest.
