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.
This commit is contained in:
parent
cc19a76656
commit
cd817be922
|
@ -72,6 +72,9 @@ void EmuThread::run() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Shutdown the core emulation
|
||||||
|
System::Shutdown();
|
||||||
|
|
||||||
MicroProfileOnThreadExit();
|
MicroProfileOnThreadExit();
|
||||||
|
|
||||||
render_window->moveContext();
|
render_window->moveContext();
|
||||||
|
|
|
@ -283,9 +283,6 @@ void GMainWindow::ShutdownGame() {
|
||||||
emu_thread->wait();
|
emu_thread->wait();
|
||||||
emu_thread = nullptr;
|
emu_thread = nullptr;
|
||||||
|
|
||||||
// Shutdown the core emulation
|
|
||||||
System::Shutdown();
|
|
||||||
|
|
||||||
// Update the GUI
|
// Update the GUI
|
||||||
ui.action_Start->setEnabled(false);
|
ui.action_Start->setEnabled(false);
|
||||||
ui.action_Start->setText(tr("Start"));
|
ui.action_Start->setText(tr("Start"));
|
||||||
|
|
Reference in New Issue