Live data from Hacker News

FEX-emu – Run x86 applications on ARM64 Linux devices

fex-emu.com

111–120 of 145 posts

Re: FEX-emu – Run x86 applications on ARM64 Linux devices

#111
post #14

How 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?

I 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.

There’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.

Re: FEX-emu – Run x86 applications on ARM64 Linux devices

#112
post #11

I 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-th...

FEX 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.

Re: FEX-emu – Run x86 applications on ARM64 Linux devices

#113

> 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 possibl…

CodeWeavers' 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-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.

What motivates CodeWeavers specifically to work on this?

Re: FEX-emu – Run x86 applications on ARM64 Linux devices

#114
post #69

Earlier quoted context omitted.

That'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-...

You'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 resp…

My apologies to you and the entire Qualcomm marketing team for my brand-guideline violations - I was going off the top of my head. What I meant in my inscrutable comment was: "Elite X" => "X Elite", "Elite P" => "X Plus", I really should not have mangled the products using such an elegant and intuitive naming convention.

Re: FEX-emu – Run x86 applications on ARM64 Linux devices

#115

Earlier quoted context omitted.

CodeWeavers' 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-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.

What motivates CodeWeavers specifically to work on this?

They 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).

Re: FEX-emu – Run x86 applications on ARM64 Linux devices

#117

Earlier quoted context omitted.

Trust me on this one?

https://dougallj.wordpress.com/2022/11/09/why-is-rosetta-2-f... > Apple M1 has an undocumented extension that, when enabled, ensures instructions like ADDS, SUBS and CMP compute PF and AF and store them as bits 26 and 27 of NZCV respectively, providing accurate emulation with no performance penalty.

Perhaps another interesting aspect of this is that it’ll be Apple with their vertical stack that will decide when to physically remove this logic from the chips.

macOS 26 is the last OS with an Intel build. Presumably this means that in all likelihood, M6 chips will remove this functionality.

Re: FEX-emu – Run x86 applications on ARM64 Linux devices

#118
post #55

One 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.

See the corresponding Igalia article for more details: https://www.igalia.com/2025/11/helpingvalve.html

Re: FEX-emu – Run x86 applications on ARM64 Linux devices

#119
post #117

Earlier quoted context omitted.

https://dougallj.wordpress.com/2022/11/09/why-is-rosetta-2-f... > Apple M1 has an undocumented extension that, when enabled, ensures instructions like ADDS, SUBS and CMP compute PF and AF and store them as bits 26 and 27 of NZCV respectively, providing accurate emulation with no performance penalty.

Perhaps another interesting aspect of this is that it’ll be Apple with their vertical stack that will decide when to physically remove this logic from the chips. macOS 26 is the last OS with an Intel build. Presumably this means that in all likelihood, M6 chips will remove this functionality.

Why do you assume that dropping support for Intel hardware from the OS will coincide with dropping hardware features that help support for x86 applications? Have you not seen Apple's documentation that states they plan to retain some Rosetta functionality beyond macOS 27 for the sake of x86 games?

Re: FEX-emu – Run x86 applications on ARM64 Linux devices

#120
post #69

Earlier quoted context omitted.

You'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 resp…

My apologies to you and the entire Qualcomm marketing team for my brand-guideline violations - I was going off the top of my head. What I meant in my inscrutable comment was: "Elite X" => "X Elite", "Elite P" => "X Plus", I really should not have mangled the products using such an elegant and intuitive naming convention.

Ok, so having clarified the naming, it still looks like you're wrong about which chips are getting driver support upstreamed, because the Snapdragon X Plus parts are (with maybe one exception, IIRC) literally the same chip as the Snapdragon X Elite parts. Do you really believe that the upstream Linux kernel would accept patches that are specifically crafted to only work on certain bins of the chip, or to fail to enable a peripheral if not enough of the CPU cores are enabled?
Post reply on HN