Closed anonimo82 closed 1 day ago
See also #988.
Unfortunately, getting Godot to run on Windows on ARM isn't as easy as other platforms. The main difficulty comes from rendering. Windows on ARM doesn't support OpenGL at all, so you have to use a translation layer provided by Microsoft.
Edit (Feburary 2024): Now that ANGLE is integrated in Godot and a Direct3D 12 driver is provided for the Forward+ and Mobile rendering methods, a Windows ARM port is much more viable.
Actually there is a graphic context translator, angle (https://github.com/google/angle) developed google. It can fully support translation from OpenGL ES to DirectX 11 on Windows.
Any progress? It's excited to see more games running on Win arm.
@zjw1918 Please don't bump without contributing significant new information. Use the :+1: reaction button on the first post instead.
With the rise of the new ARM64 windows machines, I think this is more relevant than ever. Godot does already support Linux ARM64, Android ARM64 and Apple Silicon. It's only natural this should be the next step.
With the rise of the new ARM64 windows machines, I think this is more relevant than ever. Godot does already support Linux ARM64, Android ARM64 and Apple Silicon. It's only natural this should be the next step.
I can help test as well, I have a Snapdragon X Elite Windows laptop.
@bogdanbabos In the future, please use the Edit button (located behind the … icon in the top-right corner of your comments) instead of multi-posting.
Edit (Feburary 2024): Now that ANGLE is integrated in Godot and a Direct3D 12 driver is provided for the Forward+ and Mobile rendering methods, a Windows ARM port is much more viable.
@Calinou Any word on whether or not we are getting an Windows ARM64 version of Godot?
@Calinou Any word on whether or not we are getting an Windows ARM64 version of Godot?
It will surely happen at some point, but we don't know when. Godot's master
branch should already build for Windows ARM64, but we need to modify the build containers to compile those binaries and distribute them in ZIP archives (and the export templates TPZ).
Supporting C# in Windows ARM64 builds will also prove challenging as per https://github.com/godotengine/godot/issues/91021.
i can also help test as well, I have a Snapdragon X Elite Windows laptop. please consider to port on win arm64 please. i already had compiled godot 4.3 beta 3 for win11 arm64 and works fine if i start with godot.windows.editor.arm64.exe --rendering-driver vulkan
otherwise I get this error:
Godot Engine v4.3.beta.custom_build.97b8ad1af (2024-07-11 21:17:06 UTC) - https://godotengine.org ERROR: Can't load EGL. at: (drivers\egl\egl_manager.cpp:360) ERROR: Unable to create DisplayServer, all display drivers failed. Use "--headless" command line argument to run the engine in headless mode if this is desired (e.g. for continuous integ. at: Main::setup2 (main\main.cpp:2758) ERROR: BUG: Unreferenced static string to 0: TextServerDummy at: StringName::unref (core\string\string_name.cpp:129)
otherwise I get this error:
Is the OpenGL support package installed? It should be listed in Add/Remove Programs if I'm not mistaken.
ERROR: Can't load EGL. at: (drivers\egl\egl_manager.cpp:360)
I'm surprised the EGL driver even attempts to start, considering the current implementation is Linux-only.
OpenGL support package
yes is correctly installed.
ERROR: Can't load EGL. at: (drivers\egl\egl_manager.cpp:360)
Since most ARM64 Windows config do not have functional desktop OpenGL, ARM64 builds of Godot are currently configured to automatically switch to ANGLE without trying to load native GL, so you should build it with ANGLE libs to enable OpenGL renderer. Static libs can be downloaded from https://github.com/godotengine/godot-angle-static and include into Godot build by adding angle_libs=PATH_TO_EXTRACTED_ANLGE_STATIC_LIBS
to the build command.
ERROR: Can't load EGL. at: (drivers\egl\egl_manager.cpp:360)
Since most ARM64 Windows config do not have functional desktop OpenGL, ARM64 builds of Godot are currently configured to automatically switch to ANGLE without trying to load native GL, so you should build it with ANGLE libs to enable OpenGL renderer. Static libs can be downloaded from https://github.com/godotengine/godot-angle-static and include into Godot build by adding
angle_libs=PATH_TO_EXTRACTED_ANLGE_STATIC_LIBS
to the build command.
wow thanks! recompiled godot 4.3 beta 3 and linked angle-libs arm64 windows and now godot start with no error and also work opengl compatibility mode!!!!
hope this will be officially as soon as possible!
ERROR: Can't load EGL. at: (drivers\egl\egl_manager.cpp:360)
Since most ARM64 Windows config do not have functional desktop OpenGL, ARM64 builds of Godot are currently configured to automatically switch to ANGLE without trying to load native GL, so you should build it with ANGLE libs to enable OpenGL renderer. Static libs can be downloaded from https://github.com/godotengine/godot-angle-static and include into Godot build by adding
angle_libs=PATH_TO_EXTRACTED_ANLGE_STATIC_LIBS
to the build command.wow thanks! recompiled godot 4.3 beta 3 and linked angle-libs arm64 windows and now godot start with no error and also work opengl compatibility mode!!!!
hope this will be officially as soon as possible!
I'd love to use it ahead of time, but I lack some compilation-related knowledge, can you open a fork on github to share your compiled arm version of godot?Thanks!!!
Windows ARM64 is now officially supported as of 4.3 RC 1: https://godotengine.org/article/release-candidate-godot-4-3-rc-1/
Describe the project you are working on
I'm not working on a project, but I would
Describe the problem or limitation you are having in your project
I'd like to use Godot in Windows on Arm
Describe the feature / enhancement and how it helps to overcome the problem or limitation
AFAIK, it's just a matter of building Godot targeting Arm64 Windows architecture
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
I really have no clue
If this enhancement will not be used often, can it be worked around with a few lines of script?
No
Is there a reason why this should be core and not an add-on in the asset library?
I guess the reason is compatibility