Back to All
Developer Blog

Port x64 Windows projects to Windows on Snapdragon using agentic AI

TLDR:

  • Open-source WoS Porter is a Copilot extension, Claude Code plugin and Codex plugin for using agentic AI to port x64 Windows projects to native Snapdragon.
  • Use agentic AI to port an x64 Windows app to Windows on Snapdragon, then optimize it.
  • You can also use WoS Porter to compare the performance of an application or library between x64 and Windows on Snapdragon.



Windows on Snapdragon continues to gain momentum in the enterprise, with nearly 7,000 compatible applications and 95-plus percent of user time spent in native Snapdragon apps.

We’re making it as easy as possible for you to take advantage of that momentum and add your software to the ecosystem. You can now use agentic AI to help port, test, and run your applications on laptops powered by Windows on Snapdragon. And, you can do it in a fraction of the time and effort you’d invest in a traditional porting project.

We’ve released WoS Porter (wos-porter), an open-source Windows-to-Snapdragon porting agent, to GitHub. WoS Porter is available as a VS Code Copilot extension, Claude Code plugin and codex plugin for porting x64 Windows projects to native Snapdragon.

You can review and accept changes while WoS Porter is running, instead of waiting until the agent has made all of its code changes. Plus, if you are new to the Snapdragon architecture and still learning about it, you can choose to automatically approve all the changes.

This blog post, based on our recent 2026 presentation at Microsoft Build, walks you through the agentic AI workflow of porting an x64 app to Windows on Snapdragon. You’ll also see how you can use the workflow to optimize a Windows on Snapdragon application or library and compare its performance against x64.

The WoS Porter already recieved positive reviews from engineers at Advantech, who mentioned they were impressed to see how straightforward the process was to port over a driver. With just a few buttons clicks to activate AI agent that would port a code, the solution is efficiently lowers the barrier to adopting native code. 

“WoS Porter transforms Windows on Snapdragon application porting from a complex engineering effort into an AI-assisted workflow. By integrating directly into familiar tools such as GitHub Copilot, Claude Code, and Codex it automates all porting tasks, from code migration and build fixes to testing and optimization. WoS Porter is enabling developers to deliver native experiences much faster to the rapidly growing Windows on Snapdragon ecosystem”
Milan PlavsichVP Compute Engineering, Qualcomm Technologies
"Microsoft and Qualcomm Technologies share a commitment to creating exceptional experiences on Windows on Snapdragon. By applying agentic AI to application porting and optimization, WoS Porter can reduce the time and engineering effort required, helping developers build high-performance native applications.”
Chris AndersonDistinguished Engineer, Windows Platform + Developer

WoS Porter in a nutshell

WoS Porter comprises AI-powered agents that automatically port open-source x64 Windows applications to native Snapdragon. We offer it as a GitHub Copilot VS Code extension, a Claude Code plugin, and an OpenAI Codex plugin so you can use it with whichever AI coding tool you already use. It automates code and build system migration, SSE/AVX-to-NEON conversion, MSVC builds, binary validation, testing, and NEON optimization.

Point WoS Porter at a GitHub repository URL or a local path to an x64 project. It will have following 8 steps as part of the tool:

  1. Analyze the codebase : Analyze the repo for x64-specific code (SIMD intrinsics, inline assembly, architecture guards)
  2. Preparation for build system : Port the build system by adding targets to CMake, MSBuild, Meson, Cargo, and 15+ other build systems
  3. Porting of code : Port the source code, translating SSE/AVX intrinsics to NEON, adding preprocessor guards, and fixing calling conventions
  4. Building the project: Build the project for Snapdragon using MSVC, iteratively fixing compilation errors
  5. Validation for ARM64 Architecture : Validate every output binary with dumpbin to confirm Arm64 architecture
  6. Test and benchmark results : Run tests on Snapdragon hardware (when available)
  7. Optimization : Apply hand-written <arm_neon.h> NEON optimizations to hot kernels for maximum performance
  8. Report generation : Generate an ARM64-PORT.md report and a series of clean commits on the arm64-port branch, ready to review and merge
Why WoS Porter?

Porting software involves far more than recompiling code. At a minimum, you’ll need to:
  • translate x86 SIMD intrinsics
  • update build systems
  • resolve architecture-specific compilation issues
  • debug Snapdragon-only runtime failures
  • carefully optimize performance-critical code using NEON

Those tasks require significant expertise and, without automation and specialized tooling, can consume long stretches of engineering effort. As shown in the tables below, WoS Porter compresses weeks of senior engineering time into hours, with benchmark-validated results.

 Level    

 Typical Libraries / Applications

 Projected Effort Saved

 Simple

   zlib, Audacity, Crypto++, wuffs, CRC32C, SWIG

   90-100%

 Medium

  NumPy, KiCad, Halide, gemmlowp, libgav1

   60-70%

 Complex 

  Skia, xsimd, IFCOpenShell

  40-50%

Table 1: Porting effort reduction

 

 Workload

 Pre-Optimization

 Post-Optimization

 Improvement 

  Manual Effort (days) 

  AI-Assisted Effort (hours)

 Crypto++ SM4

 127 MiB/s

 307 MiB/s

 2.5×

 6-8

 4-6

 CRC32C 4KB

 4.45 GB/s

 23.12 GB/s

 5.20×

 8-10

 20-24

 SQLite Workload

 595.916 s

 556.177 s

 1.07×

 10-12

 10-14

 OpenCV Rotate

 0.578 ms

 0.217 ms

 2.67×

 10-12

 20-24

 OpenCV Norm Mask

 0.90 ms

 0.32 ms

 2.82×

 10-12

 20-24

Table 2: Manual vs. AI-assisted porting and optimization effort

Setting up WoS Porter

System requirements:

  • Visual Studio 2022 with the MSVC v143 Arm64/Arm64EC build tools and Windows 11 SDK

  • GitHub Copilot extension, Claude Code, or OpenAI Codex CLI — installed and authenticated

  • VS Code 1.100+ (for Copilot or Claude Code or Codex VS Code extension) Claude Code CLI or Codex CLI

  • git in PATH

We’ve posted a Get Started procedure to help you set up WoS Porter.

Once you’ve set up the agent, you can start using it to port and optimize applications and libraries. Have a look at the typical scenarios below for using WoS Porter.

Scenario 1: Use agentic AI to port an x64 Windows app or library to Windows on Snapdragon

Open your preferred AI coding tool and select the WoS Porter agent. For this scenario, you’ll pass the project URL or local path with WOS_SKIP_OPTIMIZE=1 to run only the porting, build, and test phases (skipping NEON optimization).

Note: To ensure full automation, enable command auto-approval before starting.

  • GitHub Copilot (VS Code extension)
@wos-porter <github-repo-url>
WOS_SKIP_OPTIMIZE=1

or

@wos-porter C:\src\cryptopp WOS_SKIP_OPTIMIZE=1
  • Claude Code (plugin)
/wos-porter:wos-porter <github-repo-url>
 WOS_SKIP_OPTIMIZE=1

or

/wos-porter:wos-porter <path-to-local-repo>
 WOS_SKIP_OPTIMIZE=1
  • Codex (plugin)
@wos-porter <github-repo-url>
 WOS_SKIP_OPTIMIZE=1

or

@wos-porter <path-to-local-repo>
 WOS_SKIP_OPTIMIZE=1

In this scenario, WoS Porter executes the following tasks/phases automatically:

  1. Clones the repository.
  2. Ports the build system and source code.
  3. Builds for Snapdragon.
  4. Validates every output binary with dumpbin.
  5. Runs tests.
  6. Generates ARM64-PORT.md with a series of clean commits on the arm64-port branch, ready to review and merge.
  7. NEON optimization is skipped in this scenario. (See Scenario 2.)
  8. If the agent stops midway, you can re-prompt it to continue the remaining phases.

Scenario 2: Use agentic AI to port and optimize x64 Windows app or library to Windows on Snapdragon

Open your preferred AI coding tool, select the WoS Porter agent, and pass the project URL or local path.

No flags are required. By default, the agent executes all 8 phases, including NEON optimization.

  • GitHub Copilot
@wos-porter <github-repo-url>

or

@wos-porter <path-to-local-repo>
  • Claude Code
/wos-porter:wos-porter <github-repo-url>

or

/wos-porter:wos-porter <path-to-local-repo>
  • Codex CLI
@wos-porter <github-repo-url>

or

@wos-porter <path-to-local-repo>

In this scenario, WoS Porter runs the full 8-phase pipeline:

Phase

Purpose

Key Activities

1. Setup

Prepare repository for enablement

Clone repository, create arm64-port branch, detect coding style and commit conventions

2. Analyze

Assess readiness

Scan SIMD/assembly usage, audit dependencies, review CI/build configuration

3. Port

Enable support in source code

Convert platform-specific code, update build configurations, make required code changes

4. Dependencies

Resolve build requirements

Identify and configure project dependencies and toolchain requirements

5. Build

Achieve successful compilation

Build the project, fix compilation/linker errors, validate binaries

6. Test

Verify functionality

Run test suites, debug failures, execute performance benchmarks

7. Optimize

Improve performance

Replace bottlenecks with NEON optimizations, analyze coverage and performance gaps

8. Report

Deliver final results

Generate ARM64-PORT report, document build steps, benchmark results, and clean commits


If the agent stops midway, you can re-prompt it to continue the remaining phases.

The optimization in Phase 7 uses a coverage-driven approach. The optimizer:

  • Reads benchmark results from Phase 6
  • Identifies hot kernels with benchmark coverage
  • Applies hand-written <arm_neon.h> intrinsics only to those functions

Each NEON implementation is benchmark-gated; that is, it is kept only if Arm64 performance improves. The implementation is discarded if no improvement is observed.

Functions already performing well are left unchanged. If the token budget is exhausted, the optimizer writes optimizer-deferred.json. The optimizer can be resumed for up to three additional invocations, for a total of four.

 

 Consideration

 Details

Deep assembly not in scope

Phase 7 optimization targets C/C++ intrinsic level only; hand-written .asm or compiler-backend tuning is out of scope.

Snapdragon host required for Phase 6

Benchmarks must run natively on Snapdragon; cross-compiled builds cannot produce the baseline Phase 7 gates against.

 

Table 3: Considerations, scenario 2

The table below summarizes the increase in performance and the reduction in effort.

Workload

Performance before optimization

Performance after optimization

Performance improvement

Effort, manual (days)

Effort, AI-assisted (hours)

Crypto++SM4

127 MiB/s

307 MiB/s

2.5x

6-8

4-6

CRC32C 4KB

4.45 GB/s

23.12 GB/s

5.20x

8-10

20-24

SQLite full workload

595.916 s

556.177 s

1.07​x

10-12

10-14

OpenCV rotate

0.578 ms

0.217 ms

2.67x

10-12

20-24

OpenCV norm_mask

0.90 ms

0.32 ms

2.82x

10-12

20-24

Table 4: Before and after WoS Porter

Scenario 3: Use agentic AI to port, optimize, and compare application performance against x64 on Windows on Snapdragon

This scenario uses the differential optimization path. WoS Porter performs the following:

  1. Aligns x64 and Arm64 benchmark results.
  2. Finds functions where native Snapdragon is at least 15% slower.
  3. Applies hand-written <arm_neon.h> intrinsics to those functions.
  4. Skips functions already at parity.

Note: If an x64 benchmark result is already present in x64_benchmark/, then start with Step 2.

Step 1 - Capture the x64 baseline from an x64 machine.

This clones the project, builds it for x64, runs benchmarks, and stores results under x64_benchmark/.

  • GitHub Copilot
@x64-benchmarker https://github.com/weidai11/cryptopp
  • Claude Code
/wos-porter:x64-benchmarker https://github.com/weidai11/cryptopp
  • Codex CLI
@x64-benchmarker https://github.com/weidai11/cryptopp

Step 2 - Port and optimize using x64 baseline on Windows on Snapdragon.

  • GitHub Copilot
@wos-porter https://github.com/weidai11/cryptopp C:\x64_benchmark\bench_results.json
  • Claude Code
/wos-porter:wos-porter https://github.com/weidai11/cryptopp C:\x64_benchmark\bench_results.json
  • Codex CLI
@wos-porter https://github.com/weidai11/cryptopp C:\x64_benchmark\bench_results.json

or

$env:WOS_X64_BENCH = 'C:\x64_benchmark\bench_results.json'

 Considerations

Details

  x64 baseline required

 WOS_X64_BENCH must point to a valid x64 benchmark results file.

 Snapdragon host required

 Benchmarking must be executed on native Snapdragon hardware.

 Gap threshold

 Only functions that are ≥ 1.15× slower than x64 are targeted for optimization.

 No shims

 Uses only hand-written <arm_neon.h> intrinsics; no shim layers are introduced.

 Budget limit

 Up to three additional resume cycles may be required to complete the optimization process, for a total of four.

Table 5: Considerations, scenario 3

 Benchmark

x64

 Arm64 (Pre-Optimization)

Arm64 (Post-Optimization)

Improvement Arm64

Status

SM4

300 MiB/s

127 MiB/s

307 MiB/s

2.5×

Improved

CRC32C (4 KB)

22 GB/s

4.45 GB/s

23.12 GB/s

5.20×

Improved

Table 6: Sample final report, scenario 3

Note: Dependency readiness on Windows on Snapdragon is a hidden challenge, and MediaPipe is a good example of why porting to Snapdragon is often a dependency challenge rather than an application challenge.

While enabling MediaPipe on Windows on Snapdragon, we encountered multiple issues within dependencies such as TensorFlow Lite and Halide.  Those issues included build failures, toolchain incompatibilities, and missing support for Snapdragon. In several cases, resolving dependency and build-system issues required more effort than the specific code changes for Snapdragon themselves.

The main lesson is simple: Plan to port the dependency graph, not just the application. For complex projects, dependency readiness is often the critical path to successful enablement.

Next steps

We continue working with Microsoft to make it easy to develop, test and run your apps on Windows on Snapdragon. We’re keeping Windows on Snapdragon in sync with Microsoft’s initiative, with results like these:

  • 2000 native apps
  • Top 200+ Steam titles
  • 10,000+ printers and peripherals
  • 1200+ models running on Qualcomm Hexagon neural processing unit (NPU)
  • 220+ enterprise IT applications

Have a look at WoS Porter in our GitHub repo. Gauge the fit with your plans for Windows on Snapdragon, then install it and try it on apps and libraries you want to port to Snapdragon.

If you have questions or want help, contact us at Qualcomm Developers on Discord.

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries ("Qualcomm"). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.

Snapdragon and Qualcomm branded products are products of Qualcomm Technologies, Inc. and/or its subsidiaries.

About the Authors
Gaurav Goel
Gaurav GoelEngineer, Principal/Manager at Qualcomm Technologies, Inc.
Prakhar Deep
Prakhar Deep Engineer at Qualcomm Technologies, Inc.

© Qualcomm Technologies, Inc. and/or its affiliated companies.

Snapdragon and Qualcomm branded products are products of Qualcomm Technologies, Inc. and/or its subsidiaries. Qualcomm patents are licensed by Qualcomm Incorporated.

Note: Certain services and materials may require you to accept additional terms and conditions before accessing or using those items.

References to "Qualcomm" may mean Qualcomm Incorporated, or subsidiaries or business units within the Qualcomm corporate structure, as applicable.

Qualcomm Incorporated includes our licensing business, QTL, and the vast majority of our patent portfolio. Qualcomm Technologies, Inc., a subsidiary of Qualcomm Incorporated, operates, along with its subsidiaries, substantially all of our engineering, research and development functions, and substantially all of our products and services businesses, including our QCT semiconductor business.

Materials that are as of a specific date, including but not limited to press releases, presentations, blog posts and webcasts, may have been superseded by subsequent events or disclosures.

Nothing in these materials is an offer to sell or license any of the services or materials referenced herein.