-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
Feature Request - ARM64 support #2944
Comments
See also dotnet/winforms#2053 and dotnet/wpf#1817 for the progress of Windows ARM64 support in .NET Core, including WinForms and WPF. |
I personally have no plans to support For background.
|
Someone else is welcome to take responsibility for adding and supporting |
This comment has been minimized.
This comment has been minimized.
This is blocked on the linker errors when attempting to compiler
The |
For anyone interested in tacking this it looks like the first build is up on https://cef-builds.spotifycdn.com/index.html#windowsarm64 First step would be working out how to generate Currently https://github.com/cefsharp/cef-binary/blob/master/build.ps1 downloads, builds and packages the |
- Build win-arm64 version of libcef_dll_wrapper.lib when using the v141 (VS 2017) or v142 (VS 2019) toolchain. Issue cefsharp/CefSharp#2944
* Upgrade to 88.1.2+gac8e5f0+chromium-88.0.4324.27. * - Add win-arm64 artifacts to package 'chromiumembeddedframework'. - Build win-arm64 version of libcef_dll_wrapper.lib when using the v141 (VS 2017) or v142 (VS 2019) toolchain. Issue cefsharp/CefSharp#2944 * Use x64_arm64 instead of amd64_arm64 as argument for vcvarsall.bat for consistency. * PR feedback: Also build the cef.redist.arm64 package.
Note that switching to I still need to check whether building a CefSharp WinForms/OffScreen app for |
Note: .NET 5.0 or higher is required to build a WinForms/WPF application for win-arm64. Fixes cefsharp#2944
Note: .NET 5.0 or higher is required to build a WinForms/WPF application for win-arm64. Fixes cefsharp#2944
Note: .NET 5.0 or higher is required to build a WinForms/WPF application for win-arm64. Fixes cefsharp#2944
* Add support for Windows ARM64 for the NETCore packages. Note: .NET 5.0 or higher is required to build a WinForms/WPF application for win-arm64. Fixes #2944 * PR feedback: Remove "WIN32" define as it is already defined by minwindef.h. * PR feedback: Switch the CefSharp.*.Example.netcore and CefSharp.Test.netcore projects from cef.redist to chromiumembeddedframework.runtime. Note: These projects are excluded for build when platform is 'arm64', as otherwise the build fails as WinForms and WPF are not yet available for ARM64 in .NET 5.0. * Follow-Up: Update path to CefSharp.Test.dll. * PR feedback: Also use RuntimeInformation for the .NET Framework example projects. * PR feedback: - Remove copying of CefRedist files in CefSharp.AfterBuild.targets which is no longer needed. - Update .vsconfig to include the VC ARM64 build tools.
Thanks to @kpreisser support has been added to https://www.myget.org/gallery/cefsharp
I'll leave this open for now as the issue will be closed when the changes make their way into a release branch. If you have a chance please test out the nightly builds under |
It looks like https://devblogs.microsoft.com/dotnet/net-july-2021/#windows-arm64 Once https://www.appveyor.com/docs/windows-images-software/#net-framework |
Hi @amaitland It looks like appveyor has updated the .NET SDK to 5.0.302 which is the version that includes ARM64 SDK. How complicated would it be to build CEFSharp for Windows ARM64 now? Thanks! |
You can test build 92.0.250-CI4152 which is now on It was hopefully build with the latest |
@amaitland It turns out the latest version of chromiumembeddedframework.runtime package does contain win-arm64 runtime, while the latest version of CefSharp.Common.NETCore doesn't:
Can it be easily fixed? |
Correct. You'll need to test with a CI build as stated above.
As I have no means of testing a build I'm relying on user feedback. If you can test a CI build and report back. I need at least a couple of people to confirm they're working before publishing a build. Anyone who is interested in ARM64 support please test and report back. |
Hi, For specific use cases like running the TypeScript compiler, the performance of the chromium browser in the Thank you! |
Sure, I would be happy to help, but it may take some time because right now we're just planning ARM64 support. I was asking about CEFSharp mainly to just put a checkmark in a list of dependencies 😬 If by the time we get there you'll still be in need of feedback, I'll post it here. But I suppose you could just go ahead and give it to the public since it doesn't jeopardize other architectures in any way, and then you'll get a load of feedback from real users? Because I suppose we're not the only ones who are planning ARM64 support and seeing that the mainstream CEFSharp doesn't support it yet and consider using MS Edge Runtime instead. |
@kpreisser Great, thanks for the feedback 👍
@A-Ovchinnikov-mx I would personally like to include |
Anyone who is interested in |
Please be aware that I'm relying on community to provide support for |
Hi, we now discovered an issue when using The issue is that when starting the application and loading a URL, sometimes the Chromium Browser just "hangs" (displays a white page), and we can see that the renderer process has high CPU usage. However, it seems to be timing related as the issue doesn't always occur. When enable logging (with default log level), and the hang issue occurs, the log file shows the following: CEF logfile contents
Notice the error about the missing When I delete this small Note that when publishing a WPF app for |
Hi @kpreisser , Thank you very much for the report! I'm not a maintainer of CefSharp but it will help us tremendously with this issue in the future 👍 I have a request, could you please post this issue in https://github.com/dotnet/wpf repo? I believe Microsoft should look into the D3DCompiler_47.dll issue. Thanks! |
Hi @A-Ovchinnikov-mx, I have reported this issue about |
Additionally, I think we need to change CefSharp/CefSharp/DependencyChecker.cs Lines 57 to 66 in 15cf58c
Currently, it always checks for the presence of |
…4, because that file isn't present in the CEF Redist for this architecture. Issue cefsharp#2944
…4, because that file isn't present in the CEF Redist for this architecture. Issue cefsharp#2944
…4, because that file isn't present in the CEF Redist for this architecture. Issue cefsharp#2944
commit aac5439 Author: Alex Maitland <[email protected]> Date: Thu Oct 14 19:37:15 2021 +1000 Test - Fix compile error commit 439970d Author: Alex Maitland <[email protected]> Date: Thu Oct 14 19:28:44 2021 +1000 Test - Fix NetCore test case commit 1a85419 Author: Alex Maitland <[email protected]> Date: Thu Oct 14 13:00:08 2021 +1000 Test - Output QUnit results if tests failed commit db9e041 Author: Alex Maitland <[email protected]> Date: Thu Oct 14 12:58:42 2021 +1000 build.ps1 - Remove TernaryReturn as no longer used commit f904b88 Author: Alex Maitland <[email protected]> Date: Thu Oct 14 12:43:35 2021 +1000 build.ps1 - Improve vswhere programfiles check commit 221185b Author: Alex Maitland <[email protected]> Date: Thu Oct 14 10:16:27 2021 +1000 WinForms/WPF/OffScreen - Enable Chromium Site Isolation by default Previously was disabled by default Can still be disabled via disable-site-isolation-trials command line argument Issue cefsharp#2967 commit fd78c0c Author: Alex Maitland <[email protected]> Date: Thu Oct 14 10:11:33 2021 +1000 Test - CanLoadRequestWithPostData now navigates to domain of same origin first When Chromium Site Isolation is enabled we must first navigate to a web page of the same origin to use LoadRequest When Site Isolation is disabled we can navigate to any web page https://magpcss.org/ceforum/viewtopic.php?f=10&t=18672&p=50266#p50249 Issue cefsharp#2967 commit c72e21c Author: Alex Maitland <[email protected]> Date: Wed Oct 13 20:50:45 2021 +1000 build.ps1 - Nuget Package only a subset of architectures - Can now build/package only a subset of architectures - Remove file elements from nuspec if arch wasn't specified - Reorder and simplify script .\build.ps1 -BuildArches "x64" Issue cefsharp#3706 commit 7c2226c Author: Alex Maitland <[email protected]> Date: Wed Oct 13 13:32:38 2021 +1000 Nuget - Update dependency groups Resolves nuget pack warning commit 8aa0ee5 Author: Alex Maitland <[email protected]> Date: Wed Oct 13 13:18:56 2021 +1000 build.ps1 - Cleanup - Fail fast if nuget.exe not found - Check for VSWhere at build start (should always be installed as it's included in VS2019 and above) - Remove netcore31 from $Target valid set, we'll just rely on the $TargetFramework - Push-Location to working directory for easier debugging commit 13c725c Author: Alex Maitland <[email protected]> Date: Wed Oct 13 12:08:59 2021 +1000 build.ps1 - Reorder scripts so functions are declared first commit 7c57c10 Author: Mitch Capper <[email protected]> Date: Mon Oct 11 02:12:26 2021 -0700 Add netcore to toolchain (it uses same VS version) commit da0f33b Author: Mitch Capper <[email protected]> Date: Mon Oct 11 01:51:53 2021 -0700 Added vs2022 support and v143 targetting. VS2022 can also build V142 but requires some additions to the project files to indicate targeting it instead. This should not change behavior for anyone as you must specific specify the 2022 target for it to work. commit 2af10bf Author: Mitch Capper <[email protected]> Date: Sun Oct 10 06:42:02 2021 -0700 build.ps1 and build.netcore.ps1 merge and architecture target added commit 66bb6c0 Author: Alex Maitland <[email protected]> Date: Wed Oct 13 11:50:00 2021 +1000 Nuget - Remove netcoreapp3.0 hacks For those unable to upgrade to .Net Core 3.1 then the old packages should still be usable by specifying AssetTargetFallback as detailed in https://docs.microsoft.com/en-us/nuget/consume-packages/package-references-in-project-files#assettargetfallback Resolves cefsharp#3444 commit 42e7b90 Author: Alex Maitland <[email protected]> Date: Wed Oct 13 09:14:22 2021 +1000 appveyor.yml - Update CefSharp.Test.dll path Runtime identifier was changed to win7-x64 so the path changed commit bd88019 Author: Alex Maitland <[email protected]> Date: Wed Oct 13 08:59:03 2021 +1000 Test - Add RuntimeIdentifiers and fix build.ps1 - Seems the Nuget restore doesn't work correctly without having RuntimeIdentifiers set Must also set RuntimeIdentifier manually so the files are copied correctly. - Move the msbuild restore after the vcvarsall.bat call so the script runs successfully commit ee431d7 Author: Alex Maitland <[email protected]> Date: Wed Oct 13 06:45:58 2021 +1000 Test - Add RuntimeIdentifiers so libcef.dll etc copied to output folder - Adding <RuntimeIdentifiers/> didn't work as expected so set RuntimeIdentifier based on PlatformTarget - Updated appveyor.yml as output path for CefSharp.Test.dll changed commit 5356e1b Author: Alex Maitland <[email protected]> Date: Wed Oct 13 05:15:34 2021 +1000 Test - Update Nuget PackageReferences - Forgot to change to the chromiumembeddedframework.runtime package - Simplify references Follow up to cefsharp@67a08c4 Issue cefsharp#3706 commit 67a08c4 Author: Alex Maitland <[email protected]> Date: Sun Oct 10 15:44:47 2021 +1000 BrowserSubProcess/Examples/Tests - Migrate to newer SDK Style projects - Migrate to new SDK style projects - Migrate to chromiumembeddedframework.runtime packages - Remove old packages.config files - Update post build event for BrowserSubprocess to set TSAware/LargeAddressAware - Change project build order Issue cefsharp#3706 commit 6953d82 Author: Alex Maitland <[email protected]> Date: Mon Oct 11 10:26:35 2021 +1000 Net Core - Nupkg Include xml files Issue cefsharp#3843 commit bfa8ccf Author: Andrew Smith <[email protected]> Date: Sun Oct 10 20:16:07 2021 -0400 WPF - IME Only use GCS_CURSORPOS if an adjacent character is new input (cefsharp#3846) * Change Wpf IME handling to only use the cursor pos when an adjacent character is new input * Meant to change both character before and after * Ensure the cursor pos is > 0 when checking the character before commit 544abc6 Author: Alex Maitland <[email protected]> Date: Mon Oct 11 10:13:55 2021 +1000 Revert "WinForms/WPF/OffScreen - Add WaitForBrowserInitialLoadAsync" Tests started failing so will revisit later. This reverts commit 08e5140. commit 8bbe6a4 Author: Alex Maitland <[email protected]> Date: Sun Oct 10 15:01:15 2021 +1000 WPF - Fix Address Load being called multiple times after browser created commit 0812ea9 Author: Konstantin Preißer <[email protected]> Date: Sun Oct 10 11:56:50 2021 +0200 Don't check for presence of "d3dcompiler_47.dll" when running as ARM64, because that file isn't present in the CEF Redist for this architecture. (cefsharp#3841) Issue cefsharp#2944 commit 08e5140 Author: Alex Maitland <[email protected]> Date: Sun Oct 10 14:41:04 2021 +1000 WinForms/WPF/OffScreen - Add WaitForBrowserInitialLoadAsync Change all the tests to use WaitForBrowserInitialLoadAsync instead of LoadUrlAsync as LoadUrlAsync will require a Url as part of cefsharp#3842 commit 15cf58c Author: Alex Maitland <[email protected]> Date: Fri Oct 8 13:05:27 2021 +1000 Core - Add IRequestContext.GetCookieManagerAsync extension method - Will return the cookie manager when the backing store has loaded otherwise returns null commit b82fa05 Author: Alex Maitland <[email protected]> Date: Fri Oct 8 12:40:54 2021 +1000 WinForms/WPF/OffScreen - Update Load(string url) behaviour - All three implementations updated to include an IsDisposed check which will simply return immediately - OffScreen updated to match the WinForms behaviour - WPF is more complex because of the initialAddress and Address properties initialAddress will be set if the browser hasn't been created, if the browserCreated has been created and OnAfterBrowserCreated hasn't been called then we'll set the Address dependency property. NOTE: For WinForms/OffScreen there's a small window here between CreateBrowser and OnAfterBrowserCreated where the Address prop will be updated, though LoadUrl won't be called. commit c226d34 Author: Alex Maitland <[email protected]> Date: Fri Oct 8 10:21:31 2021 +1000 WinForms/WPF/OffScreen - Add LoadUrl method (Same as Load(string)). A more meaningful name for the method, matches the LoadUrlAsync method that was added recently.
Just a follow-up: The fix for this issue has been backported to .NET 6.0 and is expected to be included in the June 2022 release (6.0.6). |
We are starting now to see some new devices from Microsoft using ARM64 architecture. I am wondering if there is a forecasted support for them.
The text was updated successfully, but these errors were encountered: