From 57fdbd9b8992de4eaf2b262e6a2cece43c141894 Mon Sep 17 00:00:00 2001 From: Fernando Sahmkow Date: Mon, 17 Feb 2020 22:15:43 -0400 Subject: FenceManager: Implement should wait. --- src/video_core/fence_manager.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/video_core/fence_manager.h') diff --git a/src/video_core/fence_manager.h b/src/video_core/fence_manager.h index 19cec0f66..036f3996c 100644 --- a/src/video_core/fence_manager.h +++ b/src/video_core/fence_manager.h @@ -53,7 +53,10 @@ public: void WaitPendingFences() { while (!fences.empty()) { TFence& current_fence = fences.front(); - WaitFence(current_fence); + bool should_wait = texture_cache.ShouldWaitAsyncFlushes(); + if (should_wait) { + WaitFence(current_fence); + } texture_cache.PopAsyncFlushes(); auto& gpu{system.GPU()}; auto& memory_manager{gpu.MemoryManager()}; @@ -80,7 +83,8 @@ private: void TryReleasePendingFences() { while (!fences.empty()) { TFence& current_fence = fences.front(); - if (!IsFenceSignaled(current_fence)) { + bool should_wait = texture_cache.ShouldWaitAsyncFlushes(); + if (should_wait && !IsFenceSignaled(current_fence)) { return; } texture_cache.PopAsyncFlushes(); -- cgit v1.2.3