aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/gpu_thread.cpp
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2019-09-26 19:08:22 -0400
committerFernandoS27 <fsahmkow27@gmail.com>2019-10-04 19:59:53 -0400
commitded3d555e10a9e1def92c7255e5659a28a3681aa (patch)
tree29d73dec1ba2a661a9930c63689973a65482ce3b /src/video_core/gpu_thread.cpp
parent87f41384a8d7d2b6b80a6b92ec8cd1f70f8fafe3 (diff)
Core: Wait for GPU to be idle before shutting down.
Diffstat (limited to 'src/video_core/gpu_thread.cpp')
-rw-r--r--src/video_core/gpu_thread.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/video_core/gpu_thread.cpp b/src/video_core/gpu_thread.cpp
index d7048b6ae7..4a42634d2c 100644
--- a/src/video_core/gpu_thread.cpp
+++ b/src/video_core/gpu_thread.cpp
@@ -90,6 +90,11 @@ void ThreadManager::FlushAndInvalidateRegion(CacheAddr addr, u64 size) {
InvalidateRegion(addr, size);
}
+void ThreadManager::WaitIdle() const {
+ while (state.last_fence > state.signaled_fence.load()) {
+ }
+}
+
u64 ThreadManager::PushCommand(CommandData&& command_data) {
const u64 fence{++state.last_fence};
state.queue.Push(CommandDataContainer(std::move(command_data), fence));