diff options
| author | 2021-09-23 20:34:02 -0400 | |
|---|---|---|
| committer | 2021-09-23 20:34:02 -0400 | |
| commit | ab63a193d7e47fc093896d051f9ebf727d3b86d8 (patch) | |
| tree | 89b2f05222f37f356777b99bcbca54dd1d228566 | |
| parent | Merge pull request #7045 from behunin/patch-1 (diff) | |
| download | yuzu-ab63a193d7e47fc093896d051f9ebf727d3b86d8.tar.gz yuzu-ab63a193d7e47fc093896d051f9ebf727d3b86d8.tar.xz yuzu-ab63a193d7e47fc093896d051f9ebf727d3b86d8.zip | |
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.
| -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 54ebed2c1..50d5dab4b 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp | |||
| @@ -305,7 +305,6 @@ struct System::Impl { | |||
| 305 | is_powered_on = false; | 305 | is_powered_on = false; |
| 306 | exit_lock = false; | 306 | exit_lock = false; |
| 307 | 307 | ||
| 308 | gpu_core.reset(); | ||
| 309 | services.reset(); | 308 | services.reset(); |
| 310 | service_manager.reset(); | 309 | service_manager.reset(); |
| 311 | cheat_engine.reset(); | 310 | cheat_engine.reset(); |
| @@ -315,6 +314,7 @@ struct System::Impl { | |||
| 315 | core_timing.Shutdown(); | 314 | core_timing.Shutdown(); |
| 316 | app_loader.reset(); | 315 | app_loader.reset(); |
| 317 | perf_stats.reset(); | 316 | perf_stats.reset(); |
| 317 | gpu_core.reset(); | ||
| 318 | kernel.Shutdown(); | 318 | kernel.Shutdown(); |
| 319 | memory.Reset(); | 319 | memory.Reset(); |
| 320 | applet_manager.ClearAll(); | 320 | applet_manager.ClearAll(); |
diff --git a/src/video_core/renderer_vulkan/vk_scheduler.h b/src/video_core/renderer_vulkan/vk_scheduler.h index bd22e4e83..85fc1712f 100644 --- a/src/video_core/renderer_vulkan/vk_scheduler.h +++ b/src/video_core/renderer_vulkan/vk_scheduler.h | |||
| @@ -212,7 +212,6 @@ private: | |||
| 212 | vk::CommandBuffer current_cmdbuf; | 212 | vk::CommandBuffer current_cmdbuf; |
| 213 | 213 | ||
| 214 | std::unique_ptr<CommandChunk> chunk; | 214 | std::unique_ptr<CommandChunk> chunk; |
| 215 | std::jthread worker_thread; | ||
| 216 | 215 | ||
| 217 | State state; | 216 | State state; |
| 218 | 217 | ||
| @@ -226,6 +225,7 @@ private: | |||
| 226 | std::mutex work_mutex; | 225 | std::mutex work_mutex; |
| 227 | std::condition_variable_any work_cv; | 226 | std::condition_variable_any work_cv; |
| 228 | std::condition_variable wait_cv; | 227 | std::condition_variable wait_cv; |
| 228 | std::jthread worker_thread; | ||
| 229 | }; | 229 | }; |
| 230 | 230 | ||
| 231 | } // namespace Vulkan | 231 | } // namespace Vulkan |