Skip to content
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

Add Windows Arm64 support #51

Merged
merged 9 commits into from
Mar 8, 2024
Merged

Add Windows Arm64 support #51

merged 9 commits into from
Mar 8, 2024

Conversation

mayuki
Copy link
Member

@mayuki mayuki commented Mar 7, 2024

Fixes #43

@mayuki
Copy link
Member Author

mayuki commented Mar 7, 2024

I can confirm that dotnet test completes without problems on Windows on Arm (Surface Pro 9 with 5G).
But, I have not been able to test it on UWP because it did not build well in my Unity & Visual Studio.

@mangolas
Can you confirm that it works in your environment?

@mangolas
Copy link
Contributor

mangolas commented Mar 7, 2024

Great that this is now this far! Unfortunately the precompiled dll from this branch did not work on my test Unity project when compiled to UWP Arm64. I'll investigate if I can replace dll with one I have compiled and then try to figure out what could be the problem.

@mangolas
Copy link
Contributor

mangolas commented Mar 7, 2024

Hmm, this is bit weird. So I compiled uwp dll by hand from this branch, and replaced precompiled dll and it didn't work. Then I went to my known working setup where I just renamed the dll to yaha_native and changed the name in code... and it worked... so then I renamed the precompiled branch dll to same name... and it worked as well...

So my conclusion is that for some reason the Cysharp.Net.Http.YetAnotherHttpHandler.Native name does not work properly when compiled with IL2CPP to UWP app. But no idea why 🤷‍♂️

@mayuki
Copy link
Member Author

mayuki commented Mar 8, 2024

Thanks for the help with the testing!

I was able to set up a Unity UWP project from scratch and run the UWP app on an Arm64 machine.
It seems that the UWP IL2CPP backend does not search for paths containing .dll if the name specified to DllImport contains a dot.

So in the case of [DllImport("yaha_native")], it searches for yaha_native.dll, but in the case of [DllImport("Cysharp.Net.Http.YetAnotherHttpHandler")], it does not search for Cysharp.Net.Http.YetAnotherHttpHandler.dll and throws a DllNotFoundException.

@mayuki
Copy link
Member Author

mayuki commented Mar 8, 2024

Added .dll to the library name only for UWP. This seems to work well in my environment.

@mangolas
Copy link
Contributor

mangolas commented Mar 8, 2024

Yay, I was now able to get this branch to work directly with my test project! So finally we can use GRPC in all our supported headset, this is so good! Thanks for great lib.

@mayuki mayuki merged commit 6ddc18e into main Mar 8, 2024
14 checks passed
@mayuki mayuki deleted the feature/win-arm64 branch March 8, 2024 09:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Win ARM64 support (.dll for HoloLens)
2 participants