If you read my scoop last week, I bet you’ve been wondering — how well could a Snapdragon chip actually run Windows games? At the 2024 Game Developers Conference, the company claimed Arm could run those titles at close to x86/64 speed, but how fast is fast?
With medium-weight games like Control and Baldur’s Gate 3, it looks like the target might be: 30 frames per second at 1080p screen resolution, medium settings, possibly with AMD’s FSR 1.0 spatial upscaling enabled.
↫ Sean Hollister at The Verge
Those are some rough numbers for machines Qualcomm claims can run x86 games at “close to full speed“.
Ok, Ok, damaging sure. But what’s the expected FPS for Age of Empires? :p
Ouch. A M1 Mac mini with Windows 10 running under Parallels gets better numbers than that in Control, I know because I’ve done it.
M1 have special (somewhat hidden) x86 memory modes built in to silicon to help them run x86 code faster than ARM can do with straight emulation. I haven’t seen anything describing whether or not Qualcomm has implemented anything similar.
It would be nice to learn whether these were CPU limited or GPU limited in this implementation.
It could very well be the case that they nailed x86 emulation, but the GPU cannot keep up, or
The opposite happened, or
They failed to properly emulate the DirectX APIs, and there is a large overhead, or
Power sharing in the APU between these compute units is suboptimal, or
One of tens other possible things that could affect the performance is happening.
Yes, it is a nice step to be able to run them at all. But definitely not at native speeds
sukru,
It’s obvious to us, but emulation is never going to be as good as native regardless of marketing department spin.
To their credit the x86 on M1 emulation was decent. But there were additional factors that played into apple’s favor:
1) Going forward, no new x86 models would be sold. Therefor buyers don’t have the dilemma of which architecture to buy into.
2) The new M1 ARM processors were only being compared to x86 CPU from earlier generations and not the latest and greatest. This gave apple’s emulation a boost in perception.
3) Macos users could reasonably expect macos software devs to eventually create native ARM ports.
For windows users the choice is a lot harder because none of these factors are true.
1) There’s more uncertainty around buying a windows ARM PC, including buyers remorse for making the “wrong” choice.
2) Comparisons between ARM and x86 models of the same generation will make emulation look worse.
3) Windows ARM software is rare and swaths of x86 windows software isn’t going anywhere. The long term dependency on emulation significantly reduces the value proposition for ARM.
Interestingly, these factors would be different once again if you look at linux 🙂
The GPU is decent, at least in raw numbers compared to the equivalent AMD/intel iGPUs.
The x86 emulation in WoA is a bit worse than that on OSX. E.g. WoA only supports SIMD up to SSE, but not AVX and up (which some games use nowadays) and WoA translator is not as tightly coupled as rosetta is with the underlying M-arch for Apple. E.g. WoA still has to pay a heavy penalty/overhead for memory ordering expectations for x86 binaries.
It is a pity, had Qualcomm released these SKUs when intended (last year) they would have had a more clear value proposition. They are going to have a major problem articulating their case, since Snapdragon compute SKUs are going to be mostly for relatively expensive premium tier laptops. Which are going to be invariably compared against M3, which is going to be a tough sale unless you’re extremely bonded to the tiny WoA ecosystem somehow.
Alfman, Xanady Asem,
Game emulation is usually tricky, and it seems like Qualcomm entered this without building sufficient expertise.
A good example on “how it should be done” is Xbox One (x86) emulating their older catalog (360, PowerPC):
https://www.eurogamer.net/digitalfoundry-2017-xbox-one-x-back-compat-how-does-it-actually-work
And this will only get worse as the mobile x86 chipsets like AMD Z1 has become really power efficient and can compete with ARM counterparts.
Again, I think we can look at Microsoft’s own prior experience here.
For the Xbox emulator they did three things:
1. Rebuilt the Xbox 360 OS for the native x86 version (used to be PowerPC)
2. Updated their internal DirectX drivers to better handle older code natively, and usually even better (like auto boosting or resolution, frame rates, or image quality)
3. Most importantly they pre-compiled the binaries with machine code translation “transpilation” between the two different architecutres.
Unlike classical emulators where code is interpreted, or JIT compiled on the fly, they had to manually go over each game title. (That is also why it is not “generic”, nor they could expand due to license restrictions).
Anyway Qualcomm here has some advantages and disadvantages:
1. The OS is already there and fully compatible
2. The DirectX is already there. HOWEVER, as demonstrated by Intel Arc’s struggles, the drivers are more than “just implementing the OpenGL” standards but actually hot-patching suboptimal game calls on the fly, re-ordering or changing GPU instructions.
3. Yes, they will never be able to achieve native performance with a similar powered hardware using dynamic translation.
Bottom line, it is nice to see Qualcomm bringing more alternatives. But if they are serious about gaming, it will be a constant uphill threadmill.
Bonus: open source xbox 360 emulator (which needs more powerful hardware): https://xenia.jp/
To be fair, nobody that is serious about gaming is going to opt for a system with a dGPU, which these Snapdragon SKUs lack.
Overall Qualcomm is going to have a very hard time articulating their value proposition. Since by the time they are released the new intel SoCs with a comparable node are going to hit the market a couple of months later. So there is no point in going through the uncertainty of WoA if a “traditional” Wintel alternative is going to have comparable performance/power/price envelopes.
If anything, Snapdragon Elites are going to go mainly into premium tier devices. Qualcomm has missed their initial launch window by a year, so I don’t think it is going to have a significant adoption. So WoA will remain a niche alternative. Although I can see Microsoft just floating it around as a safety mechanism in order to have multiple SoC suppliers competing in order to keep the Apple silicon threat in check.
sukru,
Usually game emulators are built for the purpose of running older titles that ran on much older hardware. This helps mitigate the performance costs of emulation. But with Qualcomm Snapdragon laptops users will want their laptop to run current x86 titles. Naturally it’s much harder to meet performance expectations using current titles. Any performance discrepancies will result in a stigma.
If the output produces a proper ARM binary, then I’d consider that closer to “native” than “emulated”. I’m not sure what titles this has been done for, but if these are official ports then wouldn’t it make more sense to remaster from actual source? Is there a licensing reason they can’t?
This type of patching is obviously done to try and correct/update proprietary software without source. Alas, the patches themselves introduce their own fragility and can create new compatibility faults as this video demonstrates. Compatibility issues on windows 11 were tracked down to binary patches applied to the game years earlier.
“Hacking a 25 Year Old Game To Make It Work”
https://www.youtube.com/watch?v=eQOOx4mmY6I
IIRC AMD’s graphics drivers use this sort of hot patching to add features to existing games. I’m not really a fan of hot patching, but if you want to add new features to old proprietary binaries, there aren’t many good options.
I agree. It’s far fairer to compare native vs native. Those are the ARM specs I’m most interested in, but unfortunately the reality is that most windows titles will remain x86-only for the foreseeable future.
They obviously are talking out their ars, emulation had gotten to a point where a switch running a switch emulator can get better performance than native. If it sounds to good to be true, then maybe you should not take a byte of the .