It offers native x86, Windows on ARM, and Apple Silicon versions.
I think this is incorrect. Specifically the Windows ARM support. Official hardware support page indicates that the Windows version requires x64. I unfortunately don’t have the hardware to confirm for myself. But Blizzard is the kind of company that would have made a blog post about that.
This is neat, and exciting that Windows emulation tooling is progressing! It seems like there’s a lot of work hardware vendors would need to do in order to make Win/Arm viable for game devs. I really wonder if that’s ever going to happen.
> I think this is incorrect. Specifically the Windows ARM support. Official hardware support page indicates that the Windows version requires x64. I unfortunately don’t have the hardware to confirm for myself. But Blizzard is the kind of company that would have made a blog post about that.
It has been around for a while, circa 2021. They made a forum post when they released it.
I’m curious if WoW is using any newer x86 instruction sets like AVX. I’ve been testing some math benchmarks on ARM emulating x64, and saw very little performance improvement with the AVX2+FMA builds, compared to the SSE4.x level. (X64 v2 to v3.) It was unexpected.
It’s the first Windows build with Prism and the first time they’ve introduced AVX(2) support, so I wonder simply if the performance isn’t there yet. I’ve found very little info online about this.
Interesting, I didn't know they'd added an Windows/ARM build. Makes some sense though, WoW has always been one of the best about broad platform/arch support… macOS/PPC and Windows/x86 versions were both available from day one and have stayed in lockstep the whole time, and it was among the first games to make both the PPC → x86 jump and x86 → ARM jump on Macs. Have heard that they had Linux builds internally early on too.
I'm tentatively excited for the new Snapdragon X2 Elite. Or I would be if any of us could ever afford RAM prices ever again.
The high end model has a 192-bit memory bus, a 3 channel design. 12+6 cores but very big/big more than less big/little. 53MB L3 cache is quite healthy. 80TOps NPU (int8). 9533 MT/s 192-bit memory for 228GB/s which is nipping right at Strix Halo & Nvidia Spark's heels. 12x PCIe 5.0, 4x PCIe 4.0, and "3x USB-C" 40Gb/s (hopefully not some shared bandwidth cop out). And some kind of pretty big GPU. The specs here are quite promising.
And Qualcomm has started taking Linux drivers somewhat more seriously. Linux & mesa drivers are arriving now for previous Snapdragon X Elite & looking pretty promising. That said, this whole Device Tree world is hell, and never going to be good, and Qualcomm direly needs to get religion there & get some ServerReady type ACPI + UEFI compatibility standardized in the products, and stop OEMs from shipping these awful embedded-style non-PC things.
I'm excited to see ARM finally actually show up with something competitive. Alas though, those RAM prices. What a sad buzzkill, and man this is going to take forever to work out.
I have always had trouble acquiring the actual devices at a competitive price. It is cheaper to get an M-series Mac Mini than a Snapdragon X Elite box and the former smokes the latter. The one advantage of the non-Macs is usually that their Linux support is good, but the Ideacentres or whatever that ship the S X E don't have very much support. Despite being fairly eager to try out this device, I could not bring myself to spend the money on what would remain in the closet after I failed to boot a Linux, any Linux.
But to answer your question as if they had not yet: it's never "just" recompiling. It's:
* recompile (and fix any warnings/errors indicated by the compiler)
* re-test ... the entire game
* fix the bugs that are encountered in test
* release/publish the game for Windows ARM64
Whatever this effort is, it's much much more than "just" recompiling. You could imagine motivated individuals on the engineering team chipping away at this list of their own accord. But following through with a product requires significant effort and coordination that often is weighed against the potential revenue that this new market could provide.
That seems a bit absurd. Surely many parts of the game won't likely have bits of code that interact with architecture in unique ways. Especially if you wrote the game in relatively portable code to begin with (as WoW almost certainly was).
I mean idk, maybe windows arm64 is a uniquely nasty target. But i'm skeptical.
It seems that "native vs. emulated" here means "arm64 binaries vs. x86 binaries, both running on Windows". So the comparison that the OP is making wouldn't be possible if Blizzard didn't already support aarch64.
TL;DR the author attempts to measure the ratio between native and emulated performance using Microsoft Prism on Windows. His measurements suggest that the emulated performance is very close to native performance.
Though I am not skeptical of the authors methodology, I do suspect that the ARM64 build of WoW may not be as "optimized" as the x64 build. This is because in some of his workloads the emulated game actually outperformed the native game.
It offers native x86, Windows on ARM, and Apple Silicon versions.
I think this is incorrect. Specifically the Windows ARM support. Official hardware support page indicates that the Windows version requires x64. I unfortunately don’t have the hardware to confirm for myself. But Blizzard is the kind of company that would have made a blog post about that.
https://us.support.blizzard.com/en/article/76459
This is neat, and exciting that Windows emulation tooling is progressing! It seems like there’s a lot of work hardware vendors would need to do in order to make Win/Arm viable for game devs. I really wonder if that’s ever going to happen.
> I think this is incorrect. Specifically the Windows ARM support. Official hardware support page indicates that the Windows version requires x64. I unfortunately don’t have the hardware to confirm for myself. But Blizzard is the kind of company that would have made a blog post about that.
It has been around for a while, circa 2021. They made a forum post when they released it.
For reasons unknown the link no longer works but here it is on the wayback machine. https://web.archive.org/web/20210512205620/https://us.forums...
Windows ARM builds are available on their CDN.
I’m curious if WoW is using any newer x86 instruction sets like AVX. I’ve been testing some math benchmarks on ARM emulating x64, and saw very little performance improvement with the AVX2+FMA builds, compared to the SSE4.x level. (X64 v2 to v3.) It was unexpected.
It’s the first Windows build with Prism and the first time they’ve introduced AVX(2) support, so I wonder simply if the performance isn’t there yet. I’ve found very little info online about this.
Does WoW still use Blizzard's in house anti-cheat engine (Warden)? Interesting how the emulated version did not trip this.
Interesting, I didn't know they'd added an Windows/ARM build. Makes some sense though, WoW has always been one of the best about broad platform/arch support… macOS/PPC and Windows/x86 versions were both available from day one and have stayed in lockstep the whole time, and it was among the first games to make both the PPC → x86 jump and x86 → ARM jump on Macs. Have heard that they had Linux builds internally early on too.
Wine has almost always worked, back when I played.
I'm tentatively excited for the new Snapdragon X2 Elite. Or I would be if any of us could ever afford RAM prices ever again.
The high end model has a 192-bit memory bus, a 3 channel design. 12+6 cores but very big/big more than less big/little. 53MB L3 cache is quite healthy. 80TOps NPU (int8). 9533 MT/s 192-bit memory for 228GB/s which is nipping right at Strix Halo & Nvidia Spark's heels. 12x PCIe 5.0, 4x PCIe 4.0, and "3x USB-C" 40Gb/s (hopefully not some shared bandwidth cop out). And some kind of pretty big GPU. The specs here are quite promising.
And Qualcomm has started taking Linux drivers somewhat more seriously. Linux & mesa drivers are arriving now for previous Snapdragon X Elite & looking pretty promising. That said, this whole Device Tree world is hell, and never going to be good, and Qualcomm direly needs to get religion there & get some ServerReady type ACPI + UEFI compatibility standardized in the products, and stop OEMs from shipping these awful embedded-style non-PC things.
I'm excited to see ARM finally actually show up with something competitive. Alas though, those RAM prices. What a sad buzzkill, and man this is going to take forever to work out.
I have always had trouble acquiring the actual devices at a competitive price. It is cheaper to get an M-series Mac Mini than a Snapdragon X Elite box and the former smokes the latter. The one advantage of the non-Macs is usually that their Linux support is good, but the Ideacentres or whatever that ship the S X E don't have very much support. Despite being fairly eager to try out this device, I could not bring myself to spend the money on what would remain in the closet after I failed to boot a Linux, any Linux.
The emulated version beats the native version some times. Either the emulator is very good or the ARM build isn't optimized too much.
How hard would it be for Blizzard to just recompile WoW to support arm64?
As others have said in this thread, they did.
But to answer your question as if they had not yet: it's never "just" recompiling. It's:
* recompile (and fix any warnings/errors indicated by the compiler)
* re-test ... the entire game
* fix the bugs that are encountered in test
* release/publish the game for Windows ARM64
Whatever this effort is, it's much much more than "just" recompiling. You could imagine motivated individuals on the engineering team chipping away at this list of their own accord. But following through with a product requires significant effort and coordination that often is weighed against the potential revenue that this new market could provide.
They've supported macOS through all of PowerPC, Intel, and now ARM. I'm sure Windows on ARM should be trivial for them.
> * re-test ... the entire game
That seems a bit absurd. Surely many parts of the game won't likely have bits of code that interact with architecture in unique ways. Especially if you wrote the game in relatively portable code to begin with (as WoW almost certainly was).
I mean idk, maybe windows arm64 is a uniquely nasty target. But i'm skeptical.
I mean you can release it with loads of parts untested and just _hope_ there aren’t bugs there, it’s definitely an option. It’s risk vs reward there.
few days ago there was thread here about Valve and 20 years FPU bug...
https://news.ycombinator.com/item?id=46009962
WoW was released 21 years ago AFAIK
They did, and that's what this article is benchmarking.
Specifically, it's comparing the native ARM64 version against the emulated x86_64 version, both running on an ARM64 CPU.
It seems that "native vs. emulated" here means "arm64 binaries vs. x86 binaries, both running on Windows". So the comparison that the OP is making wouldn't be possible if Blizzard didn't already support aarch64.
They support arm64
TL;DR the author attempts to measure the ratio between native and emulated performance using Microsoft Prism on Windows. His measurements suggest that the emulated performance is very close to native performance.
Though I am not skeptical of the authors methodology, I do suspect that the ARM64 build of WoW may not be as "optimized" as the x64 build. This is because in some of his workloads the emulated game actually outperformed the native game.