-
Notifications
You must be signed in to change notification settings - Fork 76
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
On Windows ARM, the installer does not install FlexASIO 64-bit #206
Comments
I took another look at this. I think a fix for this is going to have to wait, for the following reasons:
A stretch goal here would be to not only have FlexASIO work properly on Windows ARM64 with x86/x64 apps, but also provide an ARM64 version of FlexASIO, such that native ARM64 ASIO Host Applications can use FlexASIO. This should be a fairly easy addition to the above. One caveat is that currently GitHub Actions would not be able to run ARM64 FlexASIOTest due to actions/runner-images#768, but it appears that is being worked on as well. So, TL;DR: the ecosystem is almost there, but not quite. Let's check again in a few months. |
Some notes to myself regarding Windows ARM64 binary setup: |
Yes, exactly. I am a Windows on Arm user, and got FlexASIO ARM64 built on my Arm device. I registered the dll following the procedure described at #205 and it worked fine. |
What do you mean? Did you compile FlexASIO with a bespoke build config targeting ARM64?
Keep in mind that an x64 ASIO host application running under ARM x64 emulation (which is presumably what you're testing with) will not be able to load an ARM64 FlexASIO. You'd need to use a traditional x64 build of FlexASIO (which does work, it's just the installer that's broken). I believe an x64 ASIO host application may be able to load an ARM64X or ARM64EC FlexASIO, but I'm not sure as I haven't looked deeply into these topics yet. I'm waiting for GitHub to provide ARM runners (actions/runner-images#768) so that I can run some experiments. To be clear, there are two separate issues with FlexASIO on ARM right now:
(1) is the most pressing issue because it's preventing FlexASIO from working with x64 apps on Windows ARM. Since most ASIO host applications are x64, this means FlexASIO is virtually unusable on Windows ARM, unless you use the workaround I provided in #205. (2) is more of a nice to have I think because I would presume there are very few (if any) native ARM ASIO applications on the market, and if they are built for ARM64EC then they might be able to use x64 FlexASIO anyway. |
Thanks for the reply.
Yes.
I believe this is why the Arm64 library failed to load. I will switch back to the x64 version of FlexASIO. If you need to run any tests on an Arm device, I'd be happy to help. :) |
Nice! It's good to know that it builds (and works, according to FlexASIOTest) at least - that was not necessarily a given. |
Hello! May you try to compile to arm64ec target instead of arm64 to see if it works under x64 a host for better performence? |
I could have a try, but how to profile it? |
It was expected to have a lower cpu usage I think? |
I managed to build the ARM64EC version and it successfully passed the FlexASIOTest. However, Kontakt still failed to load the driver for some reason. I'm not very familiar with things related to ARM architecture, so I might have missed something critical. |
@dechamps: Per the advice of those release notes ("In ArchitecturesAllowed and ArchitecturesInstallIn64BitMode, change any use of x64 to x64compatible"), could you append the "compatible" to the x64 value for the ArchitecturesInstallIn64BitMode entry in src/installer.in.iss? That should already allow for the x64 binaries to be installed in 64 bit mode on ARM64 systems. |
Has anyone looked into this recently? With all the snapdragon X laptops releasing this year, windows arm is becoming a much larger thing. |
In #205 @eguetta ran into an issue where the FlexASIO installer only installed the 32-bit version of FlexASIO, leaving out the 64-bit version. This results in FlexASIO being only usable in 32-bit apps and not showing up in the driver list of 64-bit apps.
The plot twist here is that @eguetta is running Windows ARM. This is very likely what triggered the issue. Most likely, FlexASIO's Inno Setup got confused and treated Windows ARM as 32-bit only.
This is a bug in FlexASIO's installer, perhaps even in Inno Setup itself.
As a workaround, Windows ARM users can manually register the 64-bit version of FlexASIO by following the procedure described at #205 (reply in thread).
The text was updated successfully, but these errors were encountered: