diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml
index f10d5de9396..80acb2e5d41 100644
--- a/doc/classes/ProjectSettings.xml
+++ b/doc/classes/ProjectSettings.xml
@@ -2982,8 +2982,8 @@
[b]Note:[/b] This setting is implemented only on Windows, Android, macOS, iOS, and Linux/X11.
- If [code]true[/code], the forward renderer will fall back to Vulkan if Direct3D 12 is not supported.
- [b]Note:[/b] This setting is implemented only on Windows.
+ If [code]true[/code], the forward renderer will fall back to Vulkan if Direct3D 12 (on Windows) or Metal (on macOS x86_64) are not supported.
+ [b]Note:[/b] This setting is implemented only on Windows and macOS.
Enable the pipeline cache that is saved to disk if the graphics API supports it.
diff --git a/platform/macos/display_server_macos.mm b/platform/macos/display_server_macos.mm
index dd351bcad79..bd6d435f83d 100644
--- a/platform/macos/display_server_macos.mm
+++ b/platform/macos/display_server_macos.mm
@@ -3785,6 +3785,14 @@ DisplayServerMacOS::DisplayServerMacOS(const String &p_rendering_driver, WindowM
#if defined(RD_ENABLED)
#if defined(VULKAN_ENABLED)
+#if defined(__x86_64__)
+ bool fallback_to_vulkan = GLOBAL_GET("rendering/rendering_device/fallback_to_vulkan");
+ // Metal rendering driver not available on Intel.
+ if (fallback_to_vulkan && rendering_driver == "metal") {
+ rendering_driver = "vulkan";
+ OS::get_singleton()->set_current_rendering_driver_name(rendering_driver);
+ }
+#endif
if (rendering_driver == "vulkan") {
rendering_context = memnew(RenderingContextDriverVulkanMacOS);
}