Both macOS and Windows can translate existing legacy x86 code into native ARM64 code. This allows apps written for Intel Macs to run on Apple Silicon (using ...
This video entirely misses the point. The x86 emulator (technically a transpiler) is just a part of equation. The important thing is that Apple emulates some of the x86 behavior in hardware. And it’s not something a software emulator can do, at least not without significant performance problems. As far as I know, current Windows on ARM ”cheats” by pretending memory order is not a problem. This works until it doesn’t, as some software will crash or produce incorrect results. Microsoft has different emulation levels as described in their support docs, each with those come with increasing performance cost. As Qualcomm did not announce technology to safely emulate x86, I assume they don’t have it. Which would mean the same clusterfuck of crashing and incompatible software Windows on ARM has to deal with now.
As far as I know, current Windows on ARM ”cheats” by pretending memory order is not a problem.
Indeed, as your link confirms:
These settings change the number of memory barriers used to synchronize memory accesses between cores in apps during emulation. Fast is the default mode, but the strict and very strict options will increase the number of barriers. This slows down the app, but reduces the risk of app errors. The single-core option removes all barriers but forces all app threads to run on a single core.
There is a post in r/hardware from just a few days ago showing that the hardware features only have a small impact on performance, not a “significant” one.
This video entirely misses the point. The x86 emulator (technically a transpiler) is just a part of equation. The important thing is that Apple emulates some of the x86 behavior in hardware. And it’s not something a software emulator can do, at least not without significant performance problems. As far as I know, current Windows on ARM ”cheats” by pretending memory order is not a problem. This works until it doesn’t, as some software will crash or produce incorrect results. Microsoft has different emulation levels as described in their support docs, each with those come with increasing performance cost. As Qualcomm did not announce technology to safely emulate x86, I assume they don’t have it. Which would mean the same clusterfuck of crashing and incompatible software Windows on ARM has to deal with now.
https://learn.microsoft.com/en-us/windows/arm/apps-on-arm-program-compat-troubleshooter
Indeed, as your link confirms:
Very good catch!
There is a post in r/hardware from just a few days ago showing that the hardware features only have a small impact on performance, not a “significant” one.
One could enable the “very strict” option above and see which tests have their performance impacted and how much.