From 493d4e8613fd1ab966257dee531bf3ded6df9b7a Mon Sep 17 00:00:00 2001 From: kd-11 Date: Wed, 23 May 2018 21:51:57 +0300 Subject: [PATCH] fixup - Improve invalidated region checks for performance --- rpcs3/Emu/RSX/RSXThread.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/rpcs3/Emu/RSX/RSXThread.cpp b/rpcs3/Emu/RSX/RSXThread.cpp index 54a225649b..aad8fed859 100644 --- a/rpcs3/Emu/RSX/RSXThread.cpp +++ b/rpcs3/Emu/RSX/RSXThread.cpp @@ -1280,14 +1280,17 @@ namespace rsx { if (!in_begin_end) { - reader_lock lock(m_mtx_task); - for (const auto& range : m_invalidated_memory_ranges) + if (!m_invalidated_memory_ranges.empty()) { - on_invalidate_memory_range(range.first, range.second); - } + writer_lock lock(m_mtx_task); - lock.upgrade(); - m_invalidated_memory_ranges.clear(); + for (const auto& range : m_invalidated_memory_ranges) + { + on_invalidate_memory_range(range.first, range.second); + } + + m_invalidated_memory_ranges.clear(); + } } }