-
-
Notifications
You must be signed in to change notification settings - Fork 715
Use ARm64EC libraries for X64 support on ARM64 systems #18570
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Sorry - this got automatically closed when the base PR was merged. Feel free to open a new PR |
@seanbudd Could you please temporarily restore the wip-buildX64 branch? Otherwise it will be very painful for me to rebase this. Restoring the branch will also allow me to reopen the pr and do a cleaner rebase in Github itself, preserving the pr. |
@LeonarddeR - done |
Thanks @seanbudd, feel free to remove it again. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements ARM64EC library support to improve performance on ARM64 systems by using native ARM64EC libraries instead of emulated x64 libraries when running x64 builds of NVDA on ARM64 Windows.
- Adds ARM64EC build target and library path configuration
- Updates library path resolution to use ARM64EC libraries on ARM64 systems for x64 builds
- Simplifies Java Access Bridge installation to copy the appropriate architecture-specific DLL directly to the source directory
Reviewed Changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 4 comments.
Show a summary per file
File | Description |
---|---|
user_docs/en/changes.md | Documents performance improvements and ARM64EC library implementation |
source/setup.py | Adds ARM64EC library path to installer manifest |
source/NVDAState.py | Updates library path resolution to use ARM64EC on ARM64 systems |
source/NVDAHelper/init.py | Fixes remote loader path for ARM64 systems |
source/JABHandler.py | Simplifies Java Access Bridge DLL loading |
sconstruct | Adds ARM64EC build environment and configuration |
nvdaHelper/uwp/sconscript | Extracts UWP redistributable logic to separate script |
nvdaHelper/localWin10/sconscript | Removes duplicated UWP redistributable code |
nvdaHelper/javaAccessBridge/sconscript | Adds Java Access Bridge DLL installation logic |
nvdaHelper/archBuild_sconscript | Implements ARM64EC build support and updates architecture detection |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Link to issue number:
Closes #18445
Summary of the issue:
On ARM64 systems. an emulation layer is used to support X64 software. However, Microsoft developed ARm64EC, an X64 compatible ABi that is X64 compatible while delivering almost native ARM64 performance.
Description of user facing changes:
Probably slightly better performance as soon as we're on X64 builds.
Description of developer facing changes:
None
Description of development approach:
Testing strategy:
Known issues with pull request:
None
Code Review Checklist: