summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Kunde Schlesner <yuriks@yuriks.net>2015-08-30 08:47:50 -0300
committerYuri Kunde Schlesner <yuriks@yuriks.net>2015-09-03 15:09:50 -0300
commitcd817be92216c631f7e44e1e64e29fe8a2d4cec4 (patch)
tree86c144d8b95d15f5610c8f2857c7767b04960cd3
parentcc19a766563f718fd62548dbb9166919cff1a8c3 (diff)
citra-qt: Move system shutdown to run inside EmuThread
This stops (for some reason sporadic) crashes and OpenGL errors during shutdown, when the OpenGL renderer tries to clean up objects from the UI thread, which has no OpenGL context active.
-rw-r--r--src/citra_qt/bootmanager.cpp3
-rw-r--r--src/citra_qt/main.cpp3
2 files changed, 3 insertions, 3 deletions
diff --git a/src/citra_qt/bootmanager.cpp b/src/citra_qt/bootmanager.cpp
index d9bacfc3d..9aec16506 100644
--- a/src/citra_qt/bootmanager.cpp
+++ b/src/citra_qt/bootmanager.cpp
@@ -72,6 +72,9 @@ void EmuThread::run() {
}
}
+ // Shutdown the core emulation
+ System::Shutdown();
+
MicroProfileOnThreadExit();
render_window->moveContext();
diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp
index 7fb1b0dcb..11813a2a8 100644
--- a/src/citra_qt/main.cpp
+++ b/src/citra_qt/main.cpp
@@ -283,9 +283,6 @@ void GMainWindow::ShutdownGame() {
emu_thread->wait();
emu_thread = nullptr;
- // Shutdown the core emulation
- System::Shutdown();
-
// Update the GUI
ui.action_Start->setEnabled(false);
ui.action_Start->setText(tr("Start"));