diff --git a/src/video_core/buffer_cache/region_manager.h b/src/video_core/buffer_cache/region_manager.h index 50cc1c988..d51e9081a 100644 --- a/src/video_core/buffer_cache/region_manager.h +++ b/src/video_core/buffer_cache/region_manager.h @@ -130,19 +130,15 @@ public: } mask &= bits; + for (const auto& [start, end] : mask) { + func(cpu_addr + start * BYTES_PER_PAGE, (end - start) * BYTES_PER_PAGE); + } + if constexpr (clear) { bits.UnsetRange(start_page, end_page); if constexpr (type == Type::CPU) { UpdateProtection(std::move(lk)); - } else { - lk.unlock(); } - } else { - lk.unlock(); - } - - for (const auto& [start, end] : mask) { - func(cpu_addr + start * BYTES_PER_PAGE, (end - start) * BYTES_PER_PAGE); } }