News: 0001599285

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Igalia's Work Improving The Linux Kernel For Helping Steam Play Gaming On ARM64

([Linux Gaming] 3 Hours Ago Futex ARM64 Enhancements)


Besides [1]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 [2]helping Valve with the open-source graphics support for the Steam Frame , the color management pipeline / HDR initiatives, and other efforts like [3]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 [4]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 [5]PDF slide deck for more details.

There are also [6]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.



[1] https://www.phoronix.com/news/FEX-Emu-2512-Released

[2] https://www.phoronix.com/news/Steam-Frame-Turnip-Vulkan

[3] https://www.phoronix.com/news/Steam-Deck-Crash-Data-Collect

[4] https://lore.kernel.org/lkml/20251122-tonyk-robust_futex-v6-0-05fea005a0fd@igalia.com/

[5] https://lpc.events/event/19/contributions/2108/attachments/1947/4170/robust-futex.pdf

[6] https://wiki.fex-emu.com/index.php/Development:32Bit_Syscall_Woes



According to the Rand McNally Places-Rated Almanac, the best place to live in
America is the city of Pittsburgh. The city of New York came in twenty-fifth.
Here in New York we really don't care too much. Because we know that we could
beat up their city anytime.
-- David Letterman