From b87fcf7e79f09186c2e99dbd3a537fbbe5d18990 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Wed, 26 Nov 2025 13:45:14 +0100 Subject: [PATCH] Windows: Make Direct3D 12 the default RD driver for new projects For compatibility reasons, `vulkan` is kept as the technical default for the setting, but projects created in Godot 4.6 and later will set `d3d12` as the driver automatically. Users upgrading to 4.6 are recommended to adopt `d3d12` as a default if it fits their needs. Enable `d3d12=yes` by default in SCons so that custom Windows builds include Direct3D 12 support. --- doc/classes/ProjectSettings.xml | 1 + editor/editor_node.cpp | 1 + platform/windows/detect.py | 6 ++++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml index c95be5774c3..dad7281e9ed 100644 --- a/doc/classes/ProjectSettings.xml +++ b/doc/classes/ProjectSettings.xml @@ -3313,6 +3313,7 @@ Two options are supported: - [code]vulkan[/code] (default), Vulkan from native drivers. If [member rendering/rendering_device/fallback_to_vulkan] is enabled, this is used as a fallback if Direct3D 12 is not supported. - [code]d3d12[/code], Direct3D 12 from native drivers. If [member rendering/rendering_device/fallback_to_d3d12] is enabled, this is used as a fallback if Vulkan is not supported. + [b]Note:[/b] Starting with Godot 4.6, new projects are configured by default to use [code]d3d12[/code] on Windows. Projects created before Godot 4.6 keep [code]vulkan[/code] for compatibility reasons, but it is recommended to switch them manually to [code]d3d12[/code]. If [code]true[/code], the Forward+ renderer will fall back to Direct3D 12 if Vulkan is not supported. The fallback is always attempted regardless of this setting if Vulkan driver support was disabled at compile time. diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 96673b3dba7..5852b3f4e28 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -7884,6 +7884,7 @@ void EditorNode::notify_settings_overrides_changed() { HashMap EditorNode::get_initial_settings() { HashMap settings; settings["physics/3d/physics_engine"] = "Jolt Physics"; + settings["rendering/rendering_device/driver.windows"] = "d3d12"; return settings; } diff --git a/platform/windows/detect.py b/platform/windows/detect.py index 19b6d98ee5d..ce1f7741f51 100644 --- a/platform/windows/detect.py +++ b/platform/windows/detect.py @@ -233,6 +233,7 @@ def get_flags(): return { "arch": arch, + "d3d12": True, "supported": ["d3d12", "dcomp", "library", "mono", "xaudio2"], } @@ -923,7 +924,8 @@ def check_d3d12_installed(env, suffix): print_error( "The Direct3D 12 rendering driver requires dependencies to be installed.\n" "You can install them by running `python misc\\scripts\\install_d3d12_sdk_windows.py`.\n" - "See the documentation for more information:\n\t" - "https://docs.godotengine.org/en/latest/engine_details/development/compiling/compiling_for_windows.html" + "See the documentation for more information:\n" + "\thttps://docs.godotengine.org/en/latest/engine_details/development/compiling/compiling_for_windows.html\n" + "Alternatively, disable this driver by compiling with `d3d12=no` explicitly." ) sys.exit(255)