diff --git a/pcsx2/gui/AppCorePlugins.cpp b/pcsx2/gui/AppCorePlugins.cpp index 6323810d5e..622a31a8e1 100644 --- a/pcsx2/gui/AppCorePlugins.cpp +++ b/pcsx2/gui/AppCorePlugins.cpp @@ -328,8 +328,6 @@ bool AppCorePlugins::Shutdown() void AppCorePlugins::Close() { - AffinityAssert_AllowFrom_CoreThread(); - if (!NeedsClose()) return; diff --git a/pcsx2/gui/Dialogs/GSDumpDialog.cpp b/pcsx2/gui/Dialogs/GSDumpDialog.cpp index 1ed789bab4..8604c5773a 100644 --- a/pcsx2/gui/Dialogs/GSDumpDialog.cpp +++ b/pcsx2/gui/Dialogs/GSDumpDialog.cpp @@ -633,8 +633,24 @@ void Dialogs::GSDumpDialog::GSThread::ExecuteTaskInThread() { GSDump::isRunning = true; u32 crc = 0, ss = 0; - // XXX: check the numbers are correct - const int renderer_override = m_root_window->m_renderer_overrides->GetSelection(); + s8 renderer_override = 0; + switch (m_root_window->m_renderer_overrides->GetSelection()) + { + // OGL SW + case 1: + renderer_override = 13; + break; + // D3D11 HW + case 2: + renderer_override = 3; + break; + // OGL HW + case 3: + renderer_override = 12; + break; + default: + break; + } char regs[8192]; m_dump_file->Read(&crc, 4); @@ -709,7 +725,7 @@ void Dialogs::GSDumpDialog::GSThread::ExecuteTaskInThread() } GSsetBaseMem((void*)regs); - if (GSopen2((void*)pDsp, renderer_override) != 0) + if (GSopen2((void*)pDsp, (renderer_override<<24)) != 0) { OnStop(); return; diff --git a/plugins/GSdx/GS.cpp b/plugins/GSdx/GS.cpp index b432cb886f..17bca81d1d 100644 --- a/plugins/GSdx/GS.cpp +++ b/plugins/GSdx/GS.cpp @@ -413,8 +413,9 @@ EXPORT_C_(int) GSopen2(void** dsp, uint32 flags) { static bool stored_toggle_state = false; const bool toggle_state = !!(flags & 4); - - auto current_renderer = theApp.GetCurrentRendererType(); + GSRendererType current_renderer = static_cast(flags >> 24); + if (current_renderer == GSRendererType::NO_RENDERER) + current_renderer = theApp.GetCurrentRendererType(); if (current_renderer != GSRendererType::Undefined && stored_toggle_state != toggle_state) { diff --git a/plugins/GSdx/GS.h b/plugins/GSdx/GS.h index d428d5b60f..cd56bb044e 100644 --- a/plugins/GSdx/GS.h +++ b/plugins/GSdx/GS.h @@ -231,10 +231,11 @@ enum class GS_MIN_FILTER : uint8_t enum class GSRendererType : int8_t { Undefined = -1, + NO_RENDERER = 0, DX1011_HW = 3, Null = 11, - OGL_HW, - OGL_SW, + OGL_HW = 12, + OGL_SW = 13, #ifdef _WIN32 Default = Undefined