summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--platform/windows/display_server_windows.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/platform/windows/display_server_windows.cpp b/platform/windows/display_server_windows.cpp
index c801ca96e7..50d6abc008 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);