Paul Thurrott found a developer documentation page, Troubleshooting x86 Desktop Apps, on the Windows Dev Center. The goal of the page is to list a few reasons why the software you develop might not be compatible with Windows 10 on ARM and the WOW translation layer. Yup, they’re reusing that name, which was the translation layer for 32-bit Win32 applications running on 64-bit Windows.
Based on this document, we now know that Windows on ARM:
- Will not translate x86 drivers, just x86 applications and services.
- Does not support 64-bit applications (Thurrott.com says they’re working on it.)
- Does not support (hardware-accelerated) OpenGL 1.1+ or DirectX 1-8
- Vulkan is not mentioned anywhere, but I’m guessing not.
There are also a few other issues, like the application cannot modify Windows components (ex: the 7-zip entry in the Windows file explorer’s right-click menu) unless it is recompiled for ARM. Thurrott.com also says that Hyper-V is not supported in Windows 10 on ARM.
The amount of software that Windows on ARM can run is surprisingly both broader and narrower than I would have expected. The major issue for me is OpenGL – you would think that the graphics driver would dictate this, not so much the OS APIs. I certainly hope that, especially after their other pushes toward openness, Microsoft isn’t pressuring ARM manufacturers to not ship an OpenGL driver, even though the hardware vendors clearly know how to support OpenGL ES at the very least.
And yes, there could very well be a good reason, and they might even be working on OpenGL support as we speak, but it’s an odd omission (at least for now).
Lastly, this has nothing to do with UWP applications. This document is only about standard Win32 applications running on ARM processors. UWP is designed to be cross-architecture. You just need to include the ARM target when you build and package.