71 ms·
FEX-emu – Run x86 applications on ARM64 Linux devices
- open-paren 11mo ago> FEX allows you to run x86 applications on ARM64 Linux devices, similar to qemu-user and box64. It offers broad compatibility with both 32-bit and 64-bit binaries, and it can be used alongside Wine/Proton to play Windows games. > It supports forwarding API calls to host system libraries like OpenGL or Vulkan to reduce emulation overhead. An experimental code cache helps minimize in-game stuttering as much as possible. Furthermore, a per-app configuration system allows tweaking performance per game, e.g. by skipping costly memory model emulation. We also provide a user-friendly FEXConfig GUI to explore and change these settings. > On the technical side, FEX features an advanced binary recompiler that supports all modern extensions of the x86(-64) instruction set, including AVX/AVX2. The heart of this recompiler is a custom IR that allows us to generate more optimized code than a traditional splatter JIT. A comprehensive system call translation layer takes care of differences between the emulated and host operating systems and implements even niche features like seccomp. A modular core enables FEX to be used as a WoW64/ARM64EC backend in Wine. Used by the new Steam Frame (https://store.steampowered.com/sale/steamframe https://store.steampowered.com/sale/steamframe) which is an ARM64 Snapdragon 8 Gen 3 that will run PC and PCVR gaming titles.
- sitkack 10mo agoNot just used by, Valve is sponsoring FEX. https://news.ycombinator.com/item?id=45903610#:~:text=Valve%20has,official%20now.&text=Valve%20deciding,to%20support https://news.ycombinator.com/item?id=45903610#:~:text=Valve%...
- cubefox 10mo agoI wouldn't call this random comment reliable testimony that they are sponsoring FEX.
- teroshan 10mo agoAs the random commenter I agree. By "support" I meant that they have a line of product and a strategy that relies on FEX to work and work as seamlessly as possible. If they contribute to FEX at even a fraction of what they did to wine and Proton it is indeed huge.
- Lightkey 10mo agohttps://gamersnexus.net/pc-builds-news/valve-steam-machine-desktop-steamos-steam-frame-vr-controller-ft-engineering https://gamersnexus.net/pc-builds-news/valve-steam-machine-d... "Valve has devoted significant resources to the development of FEX emulation."
- thehias 10mo agoMan, Fex is Valve, Valve is Fex! The steam logo is right there in the logo! https://files.mastodon.social/accounts/headers/110/652/595/672/731/941/original/da30c7cd1961bd0e.png https://files.mastodon.social/accounts/headers/110/652/595/6... Center of left side, it is a Valve product. All main devs are employed by Valve.
- mirashii 10mo agohttps://www.igalia.com/2025/11/helpingvalve.html https://www.igalia.com/2025/11/helpingvalve.html
- Lightkey 10mo agoThey took their sweet time but both the project lead Ryan Houdek as well as Valve developer Pierre-Loup Griffais (username Plagman here in the comments) have now come out saying that FEX-Emu was not just sponsored by Valve but is actually their project and that they approached suitable developers with the idea who they have been paying for the development: https://www.gamingonlinux.com/2025/12/valve-have-been-funding-fex-to-get-x86-games-on-arm-linux/ https://www.gamingonlinux.com/2025/12/valve-have-been-fundin...
- geerlingguy 10mo agoCodeWeavers' Crossover just released a Preview version for Arm that incorporates Fex and allows games like Cyberpunk 2077 to run: https://www.codeweavers.com/blog/mjohnson/2025/11/6/twist-our-arm64-heres-the-latest-crossover-preview https://www.codeweavers.com/blog/mjohnson/2025/11/6/twist-ou... I've tested it on an Ampere workstation, and was trying it on a Pi, but it seems with Trixie, there may be some bugs with both that and box64 right now, I was having trouble with both of them.
- nialv7 10mo agoHey, it's that YouTube guy with cursed Raspberry Pi setups!
- somanyphotons 10mo agoWhat motivates CodeWeavers specifically to work on this?
- aj_hackman 10mo agoThey make CrossOver, which is a productized version of Wine that lets you run Windows software on MacOS. They also work closely with Valve, who have just announced Steam Frame (a device that runs SteamOS on ARM).
- GeekyBear 10mo ago> The main corporate sponsor of Wine is CodeWeavers, which employs Julliard and many other Wine developers to work on Wine and on CrossOver, CodeWeavers' supported version of Wine. https://en.wikipedia.org/wiki/Wine_(software) https://en.wikipedia.org/wiki/Wine_(software)
- LeFantome 10mo agoIt is quite likely that Valve is paying for this work. It benefits the Steam Frame.
- globalnode 10mo agoDoes that mean I can run windows games on my rpi? (In theory at least)
- adgjlsfhk1 10mo agoYes (just possibly at ~2 fps)
- GCUMstlyHarmls 10mo agoInto the Breach is back on the menu. There's probably a mountain of x86 games that would not need to hit above 15-30fps to be fun.
- ThatPlayer 10mo agoInto the Breach can even run on a Pi 4: https://youtu.be/jF6xGlmKVUQ https://youtu.be/jF6xGlmKVUQ
- geerlingguy 10mo agoPut a GPU on it, and you can get 30+ fps in some newer(ish) games, 60+ fps in older games.
- deleted 10mo ago[deleted]
- LeonM 10mo ago[flagged]
- stevefan1999 10mo agoIt would be cool if we can use LLVM to lift the x86 code into LLVM bitcode and go to different platforms easily with ostate of the art optimizations, won't it?
- aengelke 10mo agoBeen there, done that during my PhD (code: [1]). Works reasonably well, except for compile times (for which I implemented a caching strategy). However, due to calling conventions, using LLVM isn't going to give the best possible performance. Some features like signal handling are extremely hard to implement with LLVM (I didn't, therefore). Although the overall performance results have been good, it's not an approach that I could strongly recommend. [1]: https://github.com/aengelke/instrew https://github.com/aengelke/instrew
- neobrain 10mo agoSadly compile times of LLVM-based recompilers make it impractical for competitive x86 emulation. We're not just talking a few single-frame stutters here and there, but considerable startup delays and pauses in-game. LLVM's optimization passes also are less useful than you might think, since the vast majority of them is motivated by source->binary translation (like clang). They don't have much effect when recompiling an already optimized binary to another architecture.
- coredog64 10mo agoA binary recompiler for running x86 on a different architecture? Where have I heard this story before? https://en.wikipedia.org/wiki/FX!32 https://en.wikipedia.org/wiki/FX!32
- LeFantome 10mo agoThe example that most people think of these days is Rosetta. But I also always think of FX32 as I think it was the first. The Alpha was such a great platform. It is too bad it’s reign was so brief.
- cultofmetatron 10mo agoI'n incredibly impressed by valve's commitment to playing the long game. It makes sense to have the frame by arm since the system is lighter and its clear this is just the trojan horse to get arm linux into every gamer's house. I wouldn't be surprised if we end up with an arm steamdeck 1-2 version from now when the tech is ready.
- sitkack 10mo agoToo bad Arm doesn't allow architectural licenses, because this is exactly the kind of thing Valve and the FEX developers would want to extend the ISA to support. I bet we see a RISC-V backend to FEX in the next 6 months, it probably already exists in a private repo. FEX is the shootstring, extra special discount budget (not maligning) version of Rosetta. Apple should sell Rosetta to Valve.
- JoshTriplett 10mo ago> Too bad Arm doesn't allow architectural licenses QEMU exists. I doubt they want the bad press of suing an Open Source project everyone is using.
- happymellon 10mo agoARM were perfectly fine getting the bad press for suing Qualcomm for releasing the Snapdragon that was finally performing enough despite these companies paying them a lot of money. They seemed quite happy to destroy their eco system if they won. https://www.rcrwireless.com/20251001/business/qualcomm-arm-2 https://www.rcrwireless.com/20251001/business/qualcomm-arm-2
- anthk 10mo agoAnd GBA emulators. And before that, BBC Accorn ones with Risc OS.
- geerlingguy 10mo agoBox64 already runs on RISC-V. Just, the available processors are so slow it's hard to even play 5-10 year old games.
- Venn1 10mo agoI tried out FEX on a modern ARM board with a discrete GPU. Really impressed with the performance. https://interfacinglinux.com/2025/06/30/fex-emu-gaming-on-the-on-the-orion-o6/ https://interfacinglinux.com/2025/06/30/fex-emu-gaming-on-th...
- roody15 10mo agoWow decent results.. impressed.
- Plagman 10mo agoI would keep in mind that the results reported there are likely quite a bit lower (in terms of CPU-side performance) than what you could achieve in practice, because it's running all of x86 Steam+Proton in the emulator. In a pre-configured environment (like SteamOS for ARM), the Steam client and Proton itself would be native ARM code, and emulation would stop at the win32 API boundary (or at certain critical libraries' APIs if you're using Linux apps).
- Lightkey 10mo agoFancy seeing the Plagman here. Last time I saw you was on Freenode (R.I.P.). So you are still working for Valve? ;-)
- TinkersW 10mo agoFEX is a CPU JIT, so your GPU settings are irrelevant to it, it is translated but not by FEX, and there is no real perf hit for the GPU The old games don't really matter with regards to FEX perf, so the only relevant bit is the semi newer games at 30/40 fps, which seems very slow to me, given that you are only running at 1080p/Medium, so you likely have a CPU bottleneck there.
- fooblaster 10mo agoHow does fex deal with the fact that the memory model on arm is weak and x86 is total store ordering. It seems like would need to hammer performance by putting memory barriers everywhere to handle all cases. Perhaps fex only works when there are well defined mutexes it can gain visibility into? anyone know?
- nialv7 10mo agoI think that's right, there is no better way than just adding barriers. On Apple hardware it can probably make use of the special memory ordering mode, but on normal ARM64 there's probably nothing it can do.
- ant6n 10mo agoThere’s one trick: run those threads on one cpu. But that may be slower than barriers on multiple CPU’s, unless the code uses a lot of library code that can be emulated directly, separately on other cpus.
- jsheard 10mo agoLooks like they do expensive conservative TSO emulation by default, but they're able to piggyback on compiler work that Microsoft did to make newer Windows x86 binaries easier to emulate. Since MSVC 2019 they annotate the executable with metadata that informs an emulator of when TSO is or isn't needed for correctness. https://fex-emu.com/FEX-2510/ https://fex-emu.com/FEX-2510/ FEX also has settings which weaken or disable TSO altogether, favoring performance over correctness. You wouldn't want to rely on those for anything important but a game possibly crashing isn't the end of the world.
- nullbyte808 10mo agoNow we just need a decent ARM Linux laptop.
- overfeed 10mo agoSnapdragon Elite X laptops are plenty decent.
- ben-schaaf 10mo agoNot for Linux they're not. IIRC Audio and camera don't work, and firmware is non-redistributable and so you need to mooch it off a Windows partition. On top of that the performance on Linux hasn't been great either.
- LeFantome 10mo agoHighly depends on which laptop
- donkeylazy456 10mo agoQualcomm's linux support is not.
- overfeed 10mo agoThat's true Qualcomm in general, but is fortunately outdated for the Snapdragon Elite X (and only the X). Qualcomm has been upstreaming patches to Linus' tree[1] - but only for the Elite X - the Elite P processors get the classic Qualcomm treatment. 1. https://www.qualcomm.com/developer/blog/2024/05/upstreaming-linux-kernel-support-for-the-snapdragon-x-elite https://www.qualcomm.com/developer/blog/2024/05/upstreaming-...
- wtallis 10mo agoYou're mangling Qualcomm's branding to the point that it's impossible to be sure what you're trying to say. Qualcomm's current laptop SoCs are called "Snapdragon X Elite" or "Snapdragon X Plus" or "Snapdragon X", all derived from various bins of two SoC designs, and all pretty much in the same boat for driver support purposes. "Snapdragon X2 Elite" and lesser siblings are due in the first half of next year, so a respectable degree of Linux support would mean having driver support for those chips in an upstream kernel release now so that there might be a mainstream distro supporting the hardware at some point in the quarter after the hardware ships.
- jasonjmcghee 10mo agoCurious how this will impact the major games that are incompatible due to denuvo type stuff
- paulryanrogers 10mo agoIIUC that DRM involves kernel level tricks and attestation, which means it'll basically never happen. Online gaming looks similarly doomed.
- dralley 10mo agoPlenty of online games work fine. Rocket League, Squad, Arc Raiders etc. are just the ones that I play.
- rounce 10mo agoIn the case of those which use EAC/EOS they need to be explicitly approved to run under Wine/Proton by the developer. There are some cases (eg. iRacing) where the developer refuses to enable support for whatever reason, and on those we’re still stuck.
- ThatPlayer 10mo agoIt's not just 'running under Wine', it's a different anti-cheat with different capabilities and the same name. It's like comparing Office 2024 Excel on Windows to Excel for iPad. They're both called Excel, and share basic features, but once you start using features like VBA, it will not run on iPad Excel. Also does it even work in Wine? Last I checked EAC only worked in Proton with the env variable to enable it being PROTON_EAC_RUNTIME
- deleted 10mo ago[deleted]
- sintax 10mo agoDenuvo anti-tamper DRM doesn't use kernel level tricks, it's all userspace and works just fine on Linux/Proton. It's the kernel level anti-cheats that don't work on Linux. And some user level anti cheats (like AntiCheat Expert) that only work on the Steam Deck as they check the CPU/GPU of the system and refuse to work if it's not the one in the Steam Deck (which also means those don't work on platforms like the ROG Ally).
- yakaccount4 10mo agoI believe a lot of the folks working on FEX are also core contributors to Dolphin, the Wii/GC emulator.
- zozbot234 10mo agoNope, Dolphin emulates PowerPC not ARM or ARM64. Totally different architecture.
- yakaccount4 10mo agoI was saying some of the top contributors of Dolphin are also top contributors of this project based on GitHub data.
- HelloUsername 10mo agoThat's really cool! I didn't know, thx for your comment :)
- cubefox 10mo agoOne problem I see is that (e.g.) Qualcomm Adreno GPUs don't even run most Windows games well when executed natively under Windows, due to games only being optimized for GeForce and Radeon. I assume this problem only gets worse when trying to run DirectX games through some sort of translation layer with FEX/DXVK.
- LeFantome 10mo agoThe GPU is not run through a translation layer. The GPU is not an x86-64 CPU. Only the CPU code has to be emulated. The GPU runs natively. That does not help with poorly supported GPUs of course.
- cubefox 10mo agoPretty sure the GPU doesn't understand DirectX, which is used for Windows games, so it must be run through a translation layer.
- scheeseman486 10mo agoWrapping graphics APIs adds effectively zero overhead if the featureset of the hardware and drivers are a close enough match.
- LeFantome 10mo agoSure, you are translating DirectX to Vulkan and that work is done on the CPU. So it may need emulation. But the Vulkan instructions passed to the GPU are effectively native. The amount of work the GPU has to do to execute against those calls is the same regardless of CPU architecture.
- Philpax 10mo agoSee the corresponding Igalia article for more details: https://www.igalia.com/2025/11/helpingvalve.html https://www.igalia.com/2025/11/helpingvalve.html
- skywal_l 10mo agoPresentation at FOSDEM2022: https://archive.fosdem.org/2022/schedule/event/fex/ https://archive.fosdem.org/2022/schedule/event/fex/ A little old but still interesting.
- pona-a 10mo agoHow is it different to box64? I couldn't really find much online comparing these two except a brench by box64 themselves.
- systematizeD 10mo agoNo different. Box64 only drm free game first, later they support drm games. Fex straight drm games.
- yonatan8070 10mo agoAre you referring to Linux's Direct Rendering Manager or to Digital Rights Management in this context?
- systematizeD 10mo agoDigital Rights Management
- hydroreadsstuff 10mo agoSome companies like to stress the efficiency or performance of Arm SoCs, but really this is a hedge against more expensive x86 hardware. AMD has increased prices of mobile SoCs radically recently. I'm looking forward to having more affordable SoC options for laptops, handhelds and desktops, perhaps from Mediatek or other lower-cost vendors. The history of the PC is one of commoditization. A fractured multi-polar landscape is detrimental to the ecosystem/productivity and should ultimately fail. x86 emulation is an important puzzle piece, and I'm happy Valve recognizes this and sponsors it.
- LeFantome 10mo agoThis is for the Steam Frame
- VikingCoder 10mo agoSo, can you run Steam and games on a Raspberry Pi 500?
- LeFantome 10mo agoYup
- VikingCoder 10mo agoLike, already, or in theory?
- alan-jordan13 10mo ago[dead]