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.
FEX-emu – Run x86 applications on ARM64 Linux devices
111–120 of 145 posts
Re: FEX-emu – Run x86 applications on ARM64 Linux devices
#112I 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...
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.
Re: FEX-emu – Run x86 applications on ARM64 Linux devices
#114Earlier 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…
Re: FEX-emu – Run x86 applications on ARM64 Linux devices
#115Earlier 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?
Re: FEX-emu – Run x86 applications on ARM64 Linux devices
#116Re: FEX-emu – Run x86 applications on ARM64 Linux devices
#117Earlier 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.
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
#118One 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.
Re: FEX-emu – Run x86 applications on ARM64 Linux devices
#119Earlier 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.
Re: FEX-emu – Run x86 applications on ARM64 Linux devices
#120Earlier 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.