summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VideoBackendBase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/VideoCommon/VideoBackendBase.cpp')
-rw-r--r--Source/Core/VideoCommon/VideoBackendBase.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/VideoBackendBase.cpp b/Source/Core/VideoCommon/VideoBackendBase.cpp
index 327064a4f2..0e413b2d3c 100644
--- a/Source/Core/VideoCommon/VideoBackendBase.cpp
+++ b/Source/Core/VideoCommon/VideoBackendBase.cpp
@@ -14,6 +14,8 @@
#include "Common/CommonTypes.h"
#include "Common/Event.h"
#include "Common/Logging/Log.h"
+#include "Core/ConfigManager.h"
+#include "Core/Core.h"
#include "Core/Host.h"
// TODO: ugly
@@ -223,6 +225,20 @@ void VideoBackendBase::ActivateBackend(const std::string& name)
g_video_backend = iter->get();
}
+void VideoBackendBase::PopulateBackendInfo()
+{
+ // 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::IsRunning())
+ return;
+
+ // 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.
+ ActivateBackend(SConfig::GetInstance().m_strVideoBackend);
+ g_video_backend->InitBackendInfo();
+ g_Config.Refresh();
+}
+
// Run from the CPU thread
void VideoBackendBase::DoState(PointerWrap& p)
{