Просмотр исходного кода

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.
Yuri Kunde Schlesner 11 лет назад
Родитель
Сommit
cd817be922
2 измененных файлов с 3 добавлено и 3 удалено
  1. 3 0
      src/citra_qt/bootmanager.cpp
  2. 0 3
      src/citra_qt/main.cpp

+ 3 - 0
src/citra_qt/bootmanager.cpp

@@ -72,6 +72,9 @@ void EmuThread::run() {
         }
     }
 
+    // Shutdown the core emulation
+    System::Shutdown();
+
     MicroProfileOnThreadExit();
 
     render_window->moveContext();

+ 0 - 3
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"));