diff options
Diffstat (limited to 'src/video_core/buffer_cache')
-rw-r--r-- | src/video_core/buffer_cache/buffer_cache.h | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index f3aa35295..510f11089 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h @@ -153,8 +153,8 @@ public: bool MustFlushRegion(VAddr addr, std::size_t size) { std::lock_guard lock{mutex}; - std::vector<MapInterval> objects = GetMapsInRange(addr, size); - return std::any_of(objects.begin(), objects.end(), [](const MapInterval& map) { + const std::vector<MapInterval> objects = GetMapsInRange(addr, size); + return std::any_of(objects.cbegin(), objects.cend(), [](const MapInterval& map) { return map->IsModified() && map->IsRegistered(); }); } @@ -176,7 +176,7 @@ public: for (const auto& object : GetMapsInRange(addr, size)) { if (object->IsMemoryMarked() && object->IsRegistered()) { - Unmark(object); + UnmarkMemory(object); object->SetSyncPending(true); marked_for_unregister.emplace_back(object); } @@ -217,10 +217,7 @@ public: } bool ShouldWaitAsyncFlushes() const { - if (committed_flushes.empty()) { - return false; - } - return committed_flushes.front() != nullptr; + return !committed_flushes.empty() && committed_flushes.front() != nullptr; } bool HasUncommittedFlushes() const { @@ -294,7 +291,7 @@ protected: } } - void Unmark(const MapInterval& map) { + void UnmarkMemory(const MapInterval& map) { if (!map->IsMemoryMarked()) { return; } @@ -305,7 +302,7 @@ protected: /// Unregisters an object from the cache void Unregister(const MapInterval& map) { - Unmark(map); + UnmarkMemory(map); map->MarkAsRegistered(false); if (map->IsSyncPending()) { marked_for_unregister.remove(map); |