Windows on Snapdragon
Application Development and Developer Support
Snapdragon® compute platforms are completely revolutionizing the world of mobile computing by powering Always On, Always Connected PCs designed to unleash productivity, efficiency, and connectivity. Laptops based on the Snapdragon compute platform are built for developing mobile-first, cloud-driven, work environments with thin and light designs that bring powerful performance, extreme battery life, and lightning-fast connectivity with 4G LTE and 5G cellular.
Windows on Snapdragon laptops provide incredible application compatibility supporting existing x86 32-bit through emulation, and ARM32 and ARM64 (AArch64) applications natively.
This page is designed to help developers looking to optimize applications on Snapdragon compute platform for Windows 10. If you are looking for information on applications supported by Windows on Snapdragon, please visit our Consumer Applications and Commercial Solutions pages.
Qualcomm Technologies and Microsoft have worked to help developers take advantage of the additional performance and efficiency that is available with Windows on Snapdragon devices by releasing several tools and resources supporting building applications natively for ARM. With the release of Visual Studio 2017 version 15.9 and later, as well as Visual Studio 2019, developers can easily select the ARM64 architecture when building applications. There is a helpful blog from Microsoft with guidance on how to get started building applications.
Developers can also utilize the LLVM project’s collection of compiler and toolchain technologies to build executables that run natively in ARM64. Pre-built LLVM binaries for Windows and Linux with support for ARM64 are available from GitHub here. There is a branch of the LLVM compiler for Windows, which includes Snapdragon optimizations, available for members of the Qualcomm Developer Network (QDN) and you can register for free here.
Applications in the Microsoft Store will automatically install the optimal version of the application based on the device. So, for an application that has x86 and ARM64 versions available in the Microsoft Store, a Windows on Snapdragon device will have the ARM64 version automatically installed. This can deliver cutting-edge performance and efficiency for the end-user, while simplifying application installers and distribution for the developer.
Qualcomm Technologies has resources available to assist developers with delivering optimal performance and efficiency within your application for Windows on Snapdragon platforms. The links provided below have details on porting applications to ARM64. We also have resources to help you with enabling your applications to leverage the advanced engines available on the Snapdragon compute platform including the Qualcomm® AI Engine, Qualcomm Spectra™ ISP, Qualcomm® Hexagon™ DSP, Qualcomm® Trusted Execution Environment, and more through the Qualcomm Advantage Network. If you have questions not addressed through these helpful links, please use the form below to request assistance from the Qualcomm Developer team.
Windows on Snapdragon are Always On Always Connected devices, and typically there is no additional work needed to utilize this. For example, desktop applications are paused when the system is in modern standby, and will resume working seamlessly once the system is active again. UWP store Apps can utilize background tasks to perform some activities during modern standby. Please check Integrating apps with modern standby for details. In addition, the Best Practices for Energy Efficiency provides details on how to design energy efficient applications with high performance.
To achieve optimal performance along with enhanced power savings, Windows on Snapdragon utilizes a combination of high performance cores and power saving cores. The OS scheduler is desinged to take advantage of this without intervention from application developers. However, if a certain activity is low priority, it would be good to mark its thread and memory priority to reflect that. The following SetProcessInformation function (processthreadsapi.h) API can also be used.
Developer Inquiry Form
Snapdragon, Qualcomm AI Engine, Qualcomm Spectra, Qualcomm Hexagon, and Qualcomm Trusted Execution Environment are products of Qualcomm Technologies, Inc. and/or its subsidiaries. Qualcomm and Qualcomm Spectra are trademarks of Qualcomm Incorporated, registered in the United States and other countries.