Oct 20, 2021
Qualcomm products mentioned within this post are offered by Qualcomm Technologies, Inc. and/or its subsidiaries.
Do you have a product that delivers the optimal user experience to your customers with Windows on Snapdragon laptops? Porting the app to run natively on ARM64 is a great initial step for optimization, we can further deliver unique Windows experiences by leveraging the Snapdragon® SoC specialized hardware cores for parallel processing to accelerate AI, Camera Image Signal Processing, and other workloads.
Miguel Nunes posted recently about getting started with developing ARM64 apps. Sure, having the necessary tools to adopt a new platform is top of mind for any developer, and Miguel’s post explains that you’re covered there. As for the rest of what you need, I participated in Mike Holmes’s panel at Linaro Connect with Marcus Perryman of Microsoft and Dave Whaley of Arm. We went over the important checkboxes, which I’ll cover in this post.
Why build for a new ecosystem?
Of course, Windows on Snapdragon represents a new chipset architecture for you. With device manufacturers like Acer, HP, Lenovo, Microsoft, and Samsung making Snapdragon based PCs that run Windows 10 and Windows 11, demand for Always Connected Windows Snapdragon PCs has accelerated.
What do these devices bring that we don’t already have in PCs and laptops? A new paradigm, really. You think differently about computing and productivity when the main device you rely on for them is as mobile as your phone — always on and always connected with 4G/5G. You can take advantage of unparalleled performance for AI, heterogeneous computing and cloud connectivity while enjoying support for up to multi-day battery life.
On the software side, consumer and enterprise applications are already available from companies like Microsoft, Mozilla, Zoom, Spotify, Facebook and Adobe. ARM has been upstreaming ARM64 frameworks like Electron and the Chromium Embedded Framework (CEF) with the goal of facilitating development. And, for many Windows developers, the kinds of open-source software we’ve assembled on the Qualcomm Developer Network are at the heart of great user experiences.
Native or emulation? (Hint: Native is better.)
Will your user mode app still run on Windows on ARM if you don’t recompile it for ARM64?
Yes. Microsoft has been working to build emulation into Windows so that applications will run without modification. Windows 11 includes emulation support for both x86 and x64 applications. Kernel mode drivers can easily be ported to ARM64 native code to run on Windows on ARM devices.
Applying the simple steps to port to ARM64 delivers the best user experience to our customers by taking full advantage of efficiencies in the architecture. With Snapdragon, one of those efficiencies is offloading from the CPU to dedicated compute cores like the neural processing unit (NPU), which runs the Qualcomm® Neural Processing Engine. Your apps can tap into dedicated resources for artificial intelligence operations including tensor and vector math. Also on the SoC is the Qualcomm Spectra™ image signal processor (ISP), a resource dedicated for processing complex algorithms to deliver sharp images and video capture.
So, in the example of a video conference, the NPU can process the AI workload of your virtual background while the ISP processes the stream from your camera and the CPU handles general processing. Elsewhere in the device, our modem keeps you connected from virtually anywhere over 4G/5G. Native applications can take full advantage of the ARM64 architecture for performance and efficiency, further enhanced by distributing the workload across the Snapdragon compute platform’s dedicated cores for an optimal user experience. That’s why we’re equipping developers with tools they can use to get their apps optimized for Windows on Snapdragon.
Covering all points in the development lifecycle
Since introducing Windows on Snapdragon in 2017, we’ve worked with Microsoft and ARM to cover the development lifecycle of this new platform.
- You have standard toolchains like Visual Studio or LLVM to compile. Visual Studio is now optimized for building Windows on ARM apps and LLVM has released an ARM64 version of their compiler.
- Your apps depend on third-party libraries. Microsoft’s ARM64 Emulation Compatible ABI (ARM64EC) lets you mix native ARM and emulated x64 code in the same process or module so that even applications dependent on x64 plugins will run on Windows on ARM.
- You could use technical support. AppAssure is a program of Microsoft engineers tasked with giving you the resources and answers you need to port your apps.
- You want to test on native hardware. Besides commercially available Windows on ARM devices, you’ll be able to test on the Snapdragon Developer Kit, a low-cost device in a mini-PC form factor.
So, as of today, we have what developers want at all points along the development cycle.
You’ll be glad to know you don’t have to figure this all out on your own. Taken as a whole, the porting effort is well supported, and given all the tools available, it’s likely an easier port than you think.
Dig into the resources we’ve made available. Let us know what else you need and let us know when your apps are ready for prime time. The ecosystem is ready and waiting for you.
NOTE: Battery life varies significantly based on device, settings, usage and other factors.