diff --git a/platform/windows/display_server_windows.cpp b/platform/windows/display_server_windows.cpp index c801ca96e7b9..50d6abc00856 100644 --- a/platform/windows/display_server_windows.cpp +++ b/platform/windows/display_server_windows.cpp @@ -4647,6 +4647,12 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win // Init context and rendering device #if defined(GLES3_ENABLED) +#if defined(__arm__) || defined(__aarch64__) || defined(_M_ARM) || defined(_M_ARM64) + // There's no native OpenGL drivers on Windows for ARM, switch to ANGLE over DX. + if (rendering_driver == "opengl3") { + rendering_driver = "opengl3_angle"; + } +#else bool fallback = GLOBAL_GET("rendering/gl_compatibility/fallback_to_angle"); if (fallback && (rendering_driver == "opengl3")) { Dictionary gl_info = detect_wgl(); @@ -4667,6 +4673,7 @@ DisplayServerWindows::DisplayServerWindows(const String &p_rendering_driver, Win rendering_driver = "opengl3_angle"; } } +#endif if (rendering_driver == "opengl3") { gl_manager_native = memnew(GLManagerNative_Windows);