diff --git a/Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp b/Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp index 4edbea1594..627dd11b75 100644 --- a/Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp +++ b/Source/Core/DolphinQt/Config/Graphics/GraphicsWindow.cpp @@ -67,7 +67,7 @@ void GraphicsWindow::CreateMainLayout() void GraphicsWindow::OnBackendChanged(const QString& backend_name) { - VideoBackendBase::PopulateBackendInfoFromUI(m_main_window->GetWindowSystemInfo()); + VideoBackendBase::PopulateBackendInfo(m_main_window->GetWindowSystemInfo()); setWindowTitle( tr("%1 Graphics Configuration").arg(tr(g_video_backend->GetDisplayName().c_str()))); diff --git a/Source/Core/VideoCommon/VideoBackendBase.cpp b/Source/Core/VideoCommon/VideoBackendBase.cpp index 0bbc734e3b..ab5e6c9fe6 100644 --- a/Source/Core/VideoCommon/VideoBackendBase.cpp +++ b/Source/Core/VideoCommon/VideoBackendBase.cpp @@ -284,6 +284,11 @@ void VideoBackendBase::ActivateBackend(const std::string& name) void VideoBackendBase::PopulateBackendInfo(const WindowSystemInfo& wsi) { + // If the core is running, the backend info will have been populated already. If we did it here, + // the UI thread could race with the GPU thread. + if (Core::IsRunningOrStarting(Core::System::GetInstance())) + return; + g_Config.Refresh(); // Reset backend_info so if the backend forgets to initialize something it doesn't end up using // a value from the previously used renderer @@ -296,14 +301,6 @@ void VideoBackendBase::PopulateBackendInfo(const WindowSystemInfo& wsi) g_Config.VerifyValidity(); } -void VideoBackendBase::PopulateBackendInfoFromUI(const WindowSystemInfo& wsi) -{ - // If the core is running, the backend info will have been populated already. - // If we did it here, the UI thread can race with the with the GPU thread. - if (!Core::IsRunningOrStarting(Core::System::GetInstance())) - PopulateBackendInfo(wsi); -} - void VideoBackendBase::DoState(PointerWrap& p) { auto& system = Core::System::GetInstance(); diff --git a/Source/Core/VideoCommon/VideoBackendBase.h b/Source/Core/VideoCommon/VideoBackendBase.h index f5222a1936..5d9ab020d2 100644 --- a/Source/Core/VideoCommon/VideoBackendBase.h +++ b/Source/Core/VideoCommon/VideoBackendBase.h @@ -70,8 +70,6 @@ public: // Fills the backend_info fields with the capabilities of the selected backend/device. static void PopulateBackendInfo(const WindowSystemInfo& wsi); - // Called by the UI thread when the graphics config is opened. - static void PopulateBackendInfoFromUI(const WindowSystemInfo& wsi); // Wrapper function which pushes the event to the GPU thread. void DoState(PointerWrap& p);