From ae99dcd5311657c62f8ed1199779d65b18e42c1f Mon Sep 17 00:00:00 2001 From: Fernando Sahmkow Date: Sat, 15 Apr 2023 00:03:48 +0200 Subject: Fence Manager: implement async fence management in a sepparate thread. --- src/video_core/query_cache.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/video_core/query_cache.h') diff --git a/src/video_core/query_cache.h b/src/video_core/query_cache.h index 8906ba6d8a..cd339b99de 100644 --- a/src/video_core/query_cache.h +++ b/src/video_core/query_cache.h @@ -173,15 +173,18 @@ public: } void CommitAsyncFlushes() { + std::unique_lock lock{mutex}; committed_flushes.push_back(uncommitted_flushes); uncommitted_flushes.reset(); } bool HasUncommittedFlushes() const { + std::unique_lock lock{mutex}; return uncommitted_flushes != nullptr; } bool ShouldWaitAsyncFlushes() const { + std::unique_lock lock{mutex}; if (committed_flushes.empty()) { return false; } @@ -189,6 +192,7 @@ public: } void PopAsyncFlushes() { + std::unique_lock lock{mutex}; if (committed_flushes.empty()) { return; } @@ -265,7 +269,7 @@ private: VideoCore::RasterizerInterface& rasterizer; - std::recursive_mutex mutex; + mutable std::recursive_mutex mutex; std::unordered_map> cached_queries; -- cgit v1.2.3