From 92b08a4fafb1e36ccc23ac7e2a9b10e91a9b6df7 Mon Sep 17 00:00:00 2001 From: Elad Ashkenazi Date: Mon, 10 Oct 2022 04:04:41 +0300 Subject: [PATCH] rsx: Fixup a bug after mfc list optimization (#12782) --- rpcs3/Emu/RSX/RSXThread.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rpcs3/Emu/RSX/RSXThread.h b/rpcs3/Emu/RSX/RSXThread.h index 861447fedb..95d60dc171 100644 --- a/rpcs3/Emu/RSX/RSXThread.h +++ b/rpcs3/Emu/RSX/RSXThread.h @@ -42,7 +42,7 @@ namespace rsx struct rsx_iomap_table { - static constexpr u32 c_lock_stride = 8096; + static constexpr u32 c_lock_stride = 8192; std::array, 4096> ea; std::array, 4096> io; @@ -65,7 +65,7 @@ namespace rsx bool added_wait = false; - for (u32 block = addr / 8192; block <= (end / 8192); block += Stride) + for (u32 block = addr / c_lock_stride; block <= (end / c_lock_stride); block += Stride) { auto& mutex_ = rs[block]; @@ -958,7 +958,7 @@ namespace rsx void update_if_enabled(u32 addr, u32 _length, const std::add_pointer_t& lock_release = std::add_pointer_t{}) { // This check is not perfect but it covers the important cases fast (this check is only an optimization - forcing true disables it) - if (length && (this->addr / rsx_iomap_table::c_lock_stride != addr / rsx_iomap_table::c_lock_stride || (addr % rsx_iomap_table::c_lock_stride + _length) > rsx_iomap_table::c_lock_stride)) + if (length && (this->addr / rsx_iomap_table::c_lock_stride != addr / rsx_iomap_table::c_lock_stride || (addr % rsx_iomap_table::c_lock_stride + _length) > rsx_iomap_table::c_lock_stride) && _length > 1) { if constexpr (!std::is_void_v) {