Windows ARM64 Build

Remember, just because you request it, that doesn't mean you'll get it.

Moderator: GZDoom Developers

CmdrShepardsPie

Windows ARM64 Build

Post by CmdrShepardsPie »

Not much to say, but the "last gen" Windows ARM computers can already run a decent set of software, and the "next gen" Windows ARM computers can power through even more. I don't know how hard it would be, but since there are already both Intel and ARM builds for both Mac and Linux, at least something similar has been done. Thanks!
Professor Hastig
Posts: 256
Joined: Mon Jan 09, 2023 2:02 am
Graphics Processor: nVidia (Modern GZDoom)

Re: Windows ARM64 Build

Post by Professor Hastig »

Correct me if I'm wrong, but isn't the main problem here that Windows/ARM only has native D3D support and has to do both OpenGL and Vulkan through rather poor emulation layers?
User avatar
Rachael
Posts: 13853
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: Windows ARM64 Build

Post by Rachael »

CmdrShepardsPie wrote: Thu May 23, 2024 12:55 am Not much to say, but the "last gen" Windows ARM computers can already run a decent set of software, and the "next gen" Windows ARM computers can power through even more. I don't know how hard it would be, but since there are already both Intel and ARM builds for both Mac and Linux, at least something similar has been done. Thanks!
Windows-ARM building was on hold because of compile issues that couldn't be resolved quickly; the official release builds were still being compiled with vcpkg despite the enablement to compile without it but ARM building was broken for some reason.

What FPS do you get with an x64 build?
Professor Hastig wrote: Thu May 23, 2024 3:50 am Correct me if I'm wrong, but isn't the main problem here that Windows/ARM only has native D3D support and has to do both OpenGL and Vulkan through rather poor emulation layers?
That is mostly correct, yes, but it's thanks to Microsoft's total lockdown of the platform that this happened. It is actually impossible to install Windows on ARM on anything unless it's been preinstalled, without using third-party tools to acquire the packages and create an image. It seems any openness that is encouraged with the Intel x64 platform which allowed for third-party collaboration (such as that which is needed to make proper GPU drivers) is completely absent. Even Apple was never this closed-off about it - you can (or at least used to be able to) download every Mac OS since 10.7.
Blzut3
 
 
Posts: 3188
Joined: Wed Nov 24, 2004 12:59 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: Windows ARM64 Build

Post by Blzut3 »

Rachael wrote: Thu May 23, 2024 5:08 am It is actually impossible to install Windows on ARM on anything unless it's been preinstalled, without using third-party tools to acquire the packages and create an image.
Not actually true. ARM ISOs for various Windows 10 and 11 versions have been available with Visual Studio subscriptions for awhile now. Granted only the Enterprise, IoT Enterprise, and LTSC editions. Presumably once released, Windows Server 2025 will be available that way too. I'm not even sure why they published the Windows 10 ISOs there given Parallels freezes trying to install them so not sure they have much use. Nice to see them though.

While it's hard to disprove the openness claims since Microsoft doesn't comment much, I've yet to see anything at all that indicates that since Windows 10 Microsoft has been any less open with Windows on ARM. What evidence there seems to be seems more like there was an exclusivity deal with Qualcomm and lack of interest from vendors. Microsoft now has Ampere instances in Azure running Windows and officially sanctions running Windows 11 Pro and Enterprise on Apple SIlicon so the exclusivity seems to have ended. To that end Parallels (and probably also VMWare) have been able to produce drivers for ARM. It even has OpenGL 4.1 support, so Microsoft isn't forcing Direct3D only. I really don't think there's anything preventing other GPU drivers other than it hasn't been worth AMD, Intel, or Nvidia's time given there was no realistic way to hook a third party GPU into the old Snapdragon laptops (and even if you could the user base isn't large enough to care). It remains to be seen if the new Snapdragons can support eGPUs or if they lack some required PCIe features like Apple Silicon (according to Asahi developers).

To be clear I don't think the new Snapdragon chips are going to change anything overnight here. I'm not trying to join the hype train, and they might not move the needle at all. All I'm saying is this isn't Windows RT and there are other explanations for the perceived faults.
dpJudas
 
 
Posts: 3147
Joined: Sat May 28, 2016 1:01 pm

Re: Windows ARM64 Build

Post by dpJudas »

OpenGL 4.1 is really, really old. That's before compute shaders even - about as useless as the state Apple left OpenGL in on macOS. That it is this old a version indicates it isn't a native GPU driver providing it (something NVIDIA/AMD/Intel wrote), but rather using a translation layer or restricted to the base support that Windows always had for OpenGL.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49193
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Windows ARM64 Build

Post by Graf Zahl »

And yet, if you ask the open source community, OpenGL 3.3 is the gold standard everybody should adhere to for maximum hardware coverage.
Blzut3
 
 
Posts: 3188
Joined: Wed Nov 24, 2004 12:59 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: Windows ARM64 Build

Post by Blzut3 »

dpJudas wrote: Sat May 25, 2024 2:45 am OpenGL 4.1 is really, really old. That's before compute shaders even - about as useless as the state Apple left OpenGL in on macOS. That it is this old a version indicates it isn't a native GPU driver providing it (something NVIDIA/AMD/Intel wrote), but rather using a translation layer or restricted to the base support that Windows always had for OpenGL.
It's not almost as useless, it is exactly as useless. It's limited to 4.1 since that's what Apple supports. So I'm pretty sure it's a native driver (for whatever definition of native a VM passthrough is).

Edit: I should mention they haven't added support for Direct3D 12 (D3D 11 is supported) so the OpenGL to D3D 12 wrapper that Microsoft ships these days doesn't work.
dpJudas
 
 
Posts: 3147
Joined: Sat May 28, 2016 1:01 pm

Re: Windows ARM64 Build

Post by dpJudas »

Graf Zahl wrote: Sat May 25, 2024 3:38 am And yet, if you ask the open source community, OpenGL 3.3 is the gold standard everybody should adhere to for maximum hardware coverage.
Just because some people choose to become stuck in time doesn't mean you have to follow them.

Both OpenGL 3.3 and 4.1 were released in 2010 and are thus 14 years old now. Even the very latest OpenGL 4.6 is 7 years old. We've had this conversation many times - people have the freedom to run Windows 7 on a computer from 2012, and I have the freedom to not help them with that project. :)

In the context of this thread I only mentioned the age to point out this couldn't just be a driver out of date or a card not supporting better. It really has to be translation (VM or otherwise) or the base built-in Windows OpenGL support. Not sure what it is nowadays. It was 1.6 once but I believe they upgraded it to something newer in Windows 10. Could very well be 4.1.

Edit: if Blzut3 is running the VM from a mac then it could make sense if it maps to OpenGL 4.1 - I just assumed he did it from Linux.
Blzut3
 
 
Posts: 3188
Joined: Wed Nov 24, 2004 12:59 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: Windows ARM64 Build

Post by Blzut3 »

dpJudas wrote: Sat May 25, 2024 5:11 am Edit: if Blzut3 is running the VM from a mac then it could make sense if it maps to OpenGL 4.1 - I just assumed he did it from Linux.
On bare metal Linux it would have OpenGL 4.6 (no Vulkan yet). It's a work machine so I haven't tried messing around with Asahi Linux I'm not sure what the status is on KVM on Asahi but if it's working, all of the virtio Windows drivers have been ported to ARM64 so there's another example of third party drivers for Windows on ARM, although the OpenGL pass through may be a work in progress (for all architectures) not sure on that status either. Ultimately the whole point here was that third parties can make drivers and I haven't seen any evidence that Microsoft is handling ARM64 any differently than x86_64 in that regard.

I don't know if the OpenGL baseline stuff has been updated, but Microsoft did write the OpenGL and Vulkan to D3D 12 layers that are in Mesa. The OpenCL, OpenGL, and Vulkan compatibility pack Microsoft offers on the store uses Mesa. The upstream code at least is capable of translating OpenGL 4.6, but like I said no D3D12 on Parallels at the moment. If it is still the case that Adreno doesn't have native OpenGL/Vulkan support I don't believe it's because Microsoft is telling them they can't.
User avatar
Rachael
Posts: 13853
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: Windows ARM64 Build

Post by Rachael »

Blzut3 wrote: Sat May 25, 2024 9:26 am Ultimately the whole point here was that third parties can make drivers and I haven't seen any evidence that Microsoft is handling ARM64 any differently than x86_64 in that regard.
It's kind of a moot point though - because with the lack of availability of .iso's to regular *end users* (not people paying to get behind a visual studio subscription paywall) there simply is no market for third-party developers to come in with custom hardware and make the necessary drivers for it. And yeah, sure, you can use tools like UUE Dump to make yourself an ARM64 .iso but that's already well into hobbyist/technically inclined territory and beyond the domain of anyone who just wants to use a computer for what it is to them.

Ultimately the pipeline architecture for ARM64 Windows is no different than x86_64, but with the only hardware manufacturers really able to make devices on it almost being forced to use a Qualcomm Snapdragon-based setup, there's not much point to doing anything other than stick random off-the-shelf parts into an ARM64-based system, make people use the Microsoft-provided Mesa layer for OpenGL and Vulkan and call it a day. It's simply not financially feasible - and apparently there was some sort of exclusivity deal that Microsoft had with Qualcomm for ARM64 that made the situation into what it is now.

So sure - you can download it from a subscription based service. That alone precludes any viable market for developing first-party drivers and systems based on the architecture, especially when x86_64 is thriving and thus far unthreatened in the Windows space.

Even without the exclusivity deal though - there's also the prospect that if Microsoft made ARM64 Windows widely available and commercialised they would have to provide telephone support (or something equivalent) for it, at least for their paying customers. They might not be willing to do that because of the extra costs involved when x86_64 is already a big variable as it is.
Blzut3
 
 
Posts: 3188
Joined: Wed Nov 24, 2004 12:59 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: Windows ARM64 Build

Post by Blzut3 »

Rachael wrote: Sat May 25, 2024 10:47 am It's kind of a moot point though - because with the lack of availability of .iso's to regular *end users* (not people paying to get behind a visual studio subscription paywall) there simply is no market for third-party developers to come in with custom hardware and make the necessary drivers for it. And yeah, sure, you can use tools like UUE Dump to make yourself an ARM64 .iso but that's already well into hobbyist/technically inclined territory and beyond the domain of anyone who just wants to use a computer for what it is to them.
With Parallels at least they have all of this fully automated so creating a Windows 11 VM on macOS is easy. That's pretty much the only "regular end user" use case for ARM64 Windows and VMs themselves lean more technical.
Rachael wrote: Sat May 25, 2024 10:47 am So sure - you can download it from a subscription based service. That alone precludes any viable market for developing first-party drivers and systems based on the architecture, especially when x86_64 is thriving and thus far unthreatened in the Windows space.
I disagree. The DIY market is tiny compared to the prebuilt market so I highly doubt this would make any difference. What does make a difference is if there's an addressable market and previously there was none. I think the USB4 controller in the new Qualcomm chips is a bigger deal for this than how ISOs are obtained, but it will depend on what the USB4 controller can do (should be able to do PCIe based on Microsoft's requirements, but as I said earlier whether it's complete enough for eGPU remains to be seen).

Should Qualcomm's new chips support eGPUs I suspect Nvidia would have some intrinsic motivation to support it since they could potentially enter the market with their own SoCs.
Rachael wrote: Sat May 25, 2024 10:47 am Even without the exclusivity deal though - there's also the prospect that if Microsoft made ARM64 Windows widely available and commercialised they would have to provide telephone support (or something equivalent) for it, at least for their paying customers. They might not be willing to do that because of the extra costs involved when x86_64 is already a big variable as it is.
There you go. Microsoft likely doesn't provide the ISO in the normal route because right now there's literally no use for it outside of people that are technically inclined enough to get it in the current state. The exception is Ampere hardware, but that's server grade stuff so perhaps Windows Server 2025 will be the first ARM version available directly at retail, we'll have to see. Everything else comes with Windows or isn't able to boot the ISO anyway (i.e. Raspberry Pi doesn't have UEFI although it looks like that's being worked on; Apple uses their own boot firmware on Apple Silicon even ignoring there's probably a 0% chance Apple would make Windows drivers for their GPU).

I will note that x64 WIndows was once OEM only too.
User avatar
Rachael
Posts: 13853
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: Windows ARM64 Build

Post by Rachael »

You're kind of missing the point though - I am saying if people have the devices and desire to use Windows, and a little less obstacles in their way to do so - I think hardware manufacturers would come in more and do first-party drivers, which like with NVidia/AMD/Intel (for whatever those are worth), would definitely work better than the Microsoft layer ones.

Qualcomm basically made a D3D driver and said "that's it, we're done" and called it quits, not seeing any possible use case for OpenGL or Vulkan. And so far no one else really has even bothered making GPU drivers for ARM Windows even though there are plenty of ARM devices quite capable of it. And that's good for D3D based games - even old ones - because Microsoft actually did create very good layer drivers for older D3D versions to work with newer ones (actually I don't know if they ported those to ARM yet, I'd have to check). But they definitely aren't putting in the same investment with the Mesa-based ones.

The situation would be better if even Qualcomm themselves did the expansion for their drivers to include the missing API's. Microsoft's layer drivers are not that deep or well tested. Microsoft's Vulkan-to-D3D straight up crashes GZDoom, """works""" for the normal OpenGL backend, and is buggy with GZDoom's OpenGLES backend (the canvas is improperly presented).
Blzut3
 
 
Posts: 3188
Joined: Wed Nov 24, 2004 12:59 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: Windows ARM64 Build

Post by Blzut3 »

Rachael wrote: Sat May 25, 2024 3:03 pm And so far no one else really has even bothered making GPU drivers for ARM Windows even though there are plenty of ARM devices quite capable of it.
Which devices are you thinking of here?
User avatar
Rachael
Posts: 13853
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her

Re: Windows ARM64 Build

Post by Rachael »

Pretty much everything other than the Snapdragon-based laptops/tablets. I'm broadly including Macs, Pis, Pinebooks, etc - mostly devices designed to run Linux or Mac OS.
Blzut3
 
 
Posts: 3188
Joined: Wed Nov 24, 2004 12:59 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: Windows ARM64 Build

Post by Blzut3 »

I don't think any of those run UEFI (Pi and Macs don't as I stated), so Windows won't work out of the box on them not because Microsoft is blocking it but because embedded vendors refuse to implement the right firmware for it. This goes for Linux too since most of the complaints I see about non-Raspberry Pi boards is that support for the specialized images is very poor. I'm not sure where the surprise is that AMD, Intel, and Nvidia haven't shown any interest in making drivers for that. Which is why I think if the new Snapdragons support PCIe over USB4 that could be a big deal for potential driver support.

Ignoring the boot issue with the Macs, I don't believe I've seen any change here but this is pretty much the last I heard about the viability of using third party GPUs with the Mac Pro: https://social.treehouse.systems/@marca ... 1013808982 So not a viable platform for developing ARM GPU drivers at least at this time.

Again the one exception I'm aware of is the Ampere stuff (although that Mastodon thread notes the Altra has issues with its PCIe implementation too), but I don't expect that to really be on the radar until Server 2025.

Return to “Feature Suggestions [GZDoom]”