4 ms·
> Valve This is a funny thing to say when Valve hasn't actually released any ARM device yet, and the Steam Deck is still fully reliant on x86. The ARM hardware
by creatonez 7mo ago
> Valve
This is a funny thing to say when Valve hasn't actually released any ARM device yet, and the Steam Deck is still fully reliant on x86. The ARM hardware they do plan to release relies on x86 emulation, which is something that historically usually doesn't pan out.
- beagle3 7mo agoWorked very well for Apple in their transition to Apple Silicon.
- i_am_a_peasant 7mo agofor real, rosetta is crazy good
- jmalicki 7mo agoThe Mac silicon is nice in that it has partial x86 emulation in that it can work in x86 memory store mode. Since they had control over the hardware, they could punt on one of the hard parts of Rosetta and bake it into Silicon. Understanding the memory ordering requirements from binary without source and without killing performance by being overly conservative (and hell, the source itself probably has memory ordering bugs if it was only tested on x86) sounds next to impossible.
- jsheard 7mo ago> Understanding the memory ordering requirements from binary without source and without killing performance by being overly conservative (and hell, the source itself probably has memory ordering bugs if it was only tested on x86) sounds next to impossible. It is hard, but Microsoft came up with a hack to make it easier. MSVC (since 2019) annotates x86 binaries with metadata describing the codes actual memory ordering requirements, to inform emulators of when they need to be conservative or can safely YOLO ordering. Obviously that was intended to assist Microsoft's Prism emulator, but the open source FEX emulator figured out the encoding (which I believe is undocumented) and implemented the same trick on their end. Emulators still have to do it the hard way when running older MSVC binaries of course, or ones compiled with Clang or GCC. Most commercial games are built with MSVC at least.
- shmerl 7mo agoSteam Frame is using ARM. Not sure exactly what was the reason for them to do it there. They also use emulation backing this project: https://github.com/FEX-Emu/FEX https://github.com/FEX-Emu/FEX