Live data from Hacker News

FEX-emu – Run x86 applications on ARM64 Linux devices

fex-emu.com

41–50 of 145 posts

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

#41

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

[deleted]

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

#42

Now we just need a decent ARM Linux laptop.

Snapdragon Elite X laptops are plenty decent.

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

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

#45

Earlier quoted context omitted.

Snapdragon Elite X laptops are plenty decent.

Qualcomm's linux support is not.

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

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

#46

I believe a lot of the folks working on FEX are also core contributors to Dolphin, the Wii/GC emulator.

Nope, Dolphin emulates PowerPC not ARM or ARM64. Totally different architecture.

I was saying some of the top contributors of Dolphin are also top contributors of this project based on GitHub data.

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

#47
post #6

Earlier quoted context omitted.

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

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

ARM 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

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

#48
post #38
post #21

Earlier quoted context omitted.

Wow decent results.. impressed.

I 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 librarie…

Fancy seeing the Plagman here. Last time I saw you was on Freenode (R.I.P.). So you are still working for Valve? ;-)

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

#49
post #15

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?

Looks 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/ FEX also has settings which weaken or disable TSO altogether, favoring…

So that optimization only works on executables produced by MSVC? Are those annotations documented and/or produced by other compilers?
Post reply on HN