diff options
author | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-09-23 20:34:02 -0400 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-09-23 20:34:02 -0400 |
commit | ab63a193d7e47fc093896d051f9ebf727d3b86d8 (patch) | |
tree | 89b2f05222f37f356777b99bcbca54dd1d228566 /src | |
parent | 17bf40f40510bff814dfda964d343b7f55af1c89 (diff) |
video_core: Fix jthread related hangs when stopping emulation
jthread on some compilers is more picky when it comes to the order in which objects are destroyed.
Diffstat (limited to 'src')
-rw-r--r-- | src/core/core.cpp | 2 | ||||
-rw-r--r-- | src/video_core/renderer_vulkan/vk_scheduler.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp index 54ebed2c16..50d5dab4ba 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -305,7 +305,6 @@ struct System::Impl { is_powered_on = false; exit_lock = false; - gpu_core.reset(); services.reset(); service_manager.reset(); cheat_engine.reset(); @@ -315,6 +314,7 @@ struct System::Impl { core_timing.Shutdown(); app_loader.reset(); perf_stats.reset(); + gpu_core.reset(); kernel.Shutdown(); memory.Reset(); applet_manager.ClearAll(); diff --git a/src/video_core/renderer_vulkan/vk_scheduler.h b/src/video_core/renderer_vulkan/vk_scheduler.h index bd22e4e838..85fc1712fd 100644 --- a/src/video_core/renderer_vulkan/vk_scheduler.h +++ b/src/video_core/renderer_vulkan/vk_scheduler.h @@ -212,7 +212,6 @@ private: vk::CommandBuffer current_cmdbuf; std::unique_ptr<CommandChunk> chunk; - std::jthread worker_thread; State state; @@ -226,6 +225,7 @@ private: std::mutex work_mutex; std::condition_variable_any work_cv; std::condition_variable wait_cv; + std::jthread worker_thread; }; } // namespace Vulkan |