diff --git a/Source/Core/VideoCommon/VideoBackendBase.cpp b/Source/Core/VideoCommon/VideoBackendBase.cpp index 78e4c7c15d..7136545c25 100644 --- a/Source/Core/VideoCommon/VideoBackendBase.cpp +++ b/Source/Core/VideoCommon/VideoBackendBase.cpp @@ -272,11 +272,12 @@ void VideoBackendBase::ActivateBackend(const std::string& name) void VideoBackendBase::PopulateBackendInfo() { - // We refresh the config after initializing the backend info, as system-specific settings - // such as anti-aliasing, or the selected adapter may be invalid, and should be checked. + g_Config.Refresh(); ActivateBackend(Config::Get(Config::MAIN_GFX_BACKEND)); g_video_backend->InitBackendInfo(); - g_Config.Refresh(); + // We validate the config after initializing the backend info, as system-specific settings + // such as anti-aliasing, or the selected adapter may be invalid, and should be checked. + g_Config.VerifyValidity(); } void VideoBackendBase::PopulateBackendInfoFromUI() diff --git a/Source/Core/VideoCommon/VideoConfig.cpp b/Source/Core/VideoCommon/VideoConfig.cpp index 6d8cd7ff29..58893c9267 100644 --- a/Source/Core/VideoCommon/VideoConfig.cpp +++ b/Source/Core/VideoCommon/VideoConfig.cpp @@ -44,7 +44,12 @@ void VideoConfig::Refresh() // invalid values. Instead, pause emulation first, which will flush the video thread, // update the config and correct it, then resume emulation, after which the video // thread will detect the config has changed and act accordingly. - Config::AddConfigChangedCallback([]() { Core::RunAsCPUThread([]() { g_Config.Refresh(); }); }); + Config::AddConfigChangedCallback([]() { + Core::RunAsCPUThread([]() { + g_Config.Refresh(); + g_Config.VerifyValidity(); + }); + }); s_has_registered_callback = true; } @@ -140,8 +145,6 @@ void VideoConfig::Refresh() bFastTextureSampling = Config::Get(Config::GFX_HACK_FAST_TEXTURE_SAMPLING); bPerfQueriesEnable = Config::Get(Config::GFX_PERF_QUERIES_ENABLE); - - VerifyValidity(); } void VideoConfig::VerifyValidity()