aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorFernando S <fsahmkow27@gmail.com>2022-01-04 14:16:24 +0100
committerGitHub <noreply@github.com>2022-01-04 14:16:24 +0100
commit118d5fa3b0fdc070f57916203dbbb999fe7e3c69 (patch)
treedcea9a661fb5595fd255fa62e81d82c9a3aef822 /src/core
parentc68a0d17fc30d9b91b8324b3899556e3ebfea8d5 (diff)
parentc17938f96ba9a3f2571387b21328743db8050250 (diff)
Merge pull request #7670 from ameerj/vsync-block
gpu: Add shut down method to synchronize threads before destruction
Diffstat (limited to 'src/core')
-rw-r--r--src/core/core.cpp2
-rw-r--r--src/core/hle/service/nvflinger/nvflinger.cpp3
2 files changed, 3 insertions, 2 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp
index aa96f709b..3f9a7f44b 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -317,6 +317,8 @@ struct System::Impl {
is_powered_on = false;
exit_lock = false;
+ gpu_core->NotifyShutdown();
+
services.reset();
service_manager.reset();
cheat_engine.reset();
diff --git a/src/core/hle/service/nvflinger/nvflinger.cpp b/src/core/hle/service/nvflinger/nvflinger.cpp
index 396cc5afa..a22811ec1 100644
--- a/src/core/hle/service/nvflinger/nvflinger.cpp
+++ b/src/core/hle/service/nvflinger/nvflinger.cpp
@@ -266,11 +266,10 @@ void NVFlinger::Compose() {
auto& gpu = system.GPU();
const auto& multi_fence = buffer->get().multi_fence;
- const auto stop_token = vsync_thread.get_stop_token();
guard->unlock();
for (u32 fence_id = 0; fence_id < multi_fence.num_fences; fence_id++) {
const auto& fence = multi_fence.fences[fence_id];
- gpu.WaitFence(fence.id, fence.value, stop_token);
+ gpu.WaitFence(fence.id, fence.value);
}
guard->lock();