diff --git a/main/main.cpp b/main/main.cpp index 9a1ab877124..12709491e42 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -2513,24 +2513,38 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph OS::get_singleton()->_allow_layered = GLOBAL_DEF_RST("display/window/per_pixel_transparency/allowed", false); #ifdef TOOLS_ENABLED - if (editor || project_manager) { - // The editor and project manager always detect and use hiDPI if needed. - OS::get_singleton()->_allow_hidpi = true; - // Disable Vulkan overlays in editor, they cause various issues. - OS::get_singleton()->set_environment("DISABLE_MANGOHUD", "1"); // GH-57403. - OS::get_singleton()->set_environment("DISABLE_RTSS_LAYER", "1"); // GH-57937. - OS::get_singleton()->set_environment("DISABLE_VKBASALT", "1"); - OS::get_singleton()->set_environment("DISABLE_VK_LAYER_reshade_1", "1"); // GH-70849. - OS::get_singleton()->set_environment("VK_LAYER_bandicam_helper_DEBUG_1", "1"); // GH-101480. - OS::get_singleton()->set_environment("DISABLE_VK_LAYER_bandicam_helper_1", "1"); // GH-101480. - } else { - // Re-allow using Vulkan overlays, disabled while using the editor. - OS::get_singleton()->unset_environment("DISABLE_MANGOHUD"); - OS::get_singleton()->unset_environment("DISABLE_RTSS_LAYER"); - OS::get_singleton()->unset_environment("DISABLE_VKBASALT"); - OS::get_singleton()->unset_environment("DISABLE_VK_LAYER_reshade_1"); - OS::get_singleton()->unset_environment("VK_LAYER_bandicam_helper_DEBUG_1"); - OS::get_singleton()->unset_environment("DISABLE_VK_LAYER_bandicam_helper_1"); + { + // Synced with https://github.com/baldurk/renderdoc/blob/2b01465c7/renderdoc/driver/vulkan/vk_layer.cpp#L118-L165 + LocalVector layers_to_disable = { + "DISABLE_RTSS_LAYER", // GH-57937. + "DISABLE_VULKAN_OBS_CAPTURE", // GH-103800. + "DISABLE_VULKAN_OW_OBS_CAPTURE", // GH-104154. + "DISABLE_SAMPLE_LAYER", // GH-104154. + "DISABLE_GAMEPP_LAYER", // GH-104154. + "DISABLE_VK_LAYER_TENCENT_wegame_cross_overlay_1", // GH-104154. + "NODEVICE_SELECT", // GH-104154. + "VK_LAYER_bandicam_helper_DEBUG_1", // GH-101480. + "DISABLE_VK_LAYER_bandicam_helper_1", // GH-101480. + "DISABLE_VK_LAYER_reshade_1", // GH-70849. + "DISABLE_VK_LAYER_GPUOpen_GRS", // GH-104154. + "DISABLE_LAYER", // GH-104154 (fpsmon). + "DISABLE_MANGOHUD", // GH-57403. + "DISABLE_VKBASALT", + }; + + if (editor || project_manager) { + // The editor and project manager always detect and use hiDPI if needed. + OS::get_singleton()->_allow_hidpi = true; + // Disable Vulkan overlays in editor, they cause various issues. + for (const String &layer_disable : layers_to_disable) { + OS::get_singleton()->set_environment(layer_disable, "1"); + } + } else { + // Re-allow using Vulkan overlays, disabled while using the editor. + for (const String &layer_disable : layers_to_disable) { + OS::get_singleton()->unset_environment(layer_disable); + } + } } #endif