diff --git a/pcsx2/GS/Renderers/HW/GSRendererHW.cpp b/pcsx2/GS/Renderers/HW/GSRendererHW.cpp index 0e079ce425..16e8bba812 100644 --- a/pcsx2/GS/Renderers/HW/GSRendererHW.cpp +++ b/pcsx2/GS/Renderers/HW/GSRendererHW.cpp @@ -5952,6 +5952,7 @@ void GSRendererHW::ClearGSLocalMemory(const GSOffset& off, const GSVector4i& r, pxAssert((off.bp() & (BLOCKS_PER_PAGE - 1)) == 0); for (u32 current_page = off.bp() >> 5; top < page_aligned_bottom; top += pgs.y, current_page += fbw) { + current_page &= 0x7ff; GSVector4i* ptr = reinterpret_cast(m_mem.vm8() + current_page * PAGE_SIZE); GSVector4i* const ptr_end = ptr + iterations_per_page; while (ptr != ptr_end) @@ -5966,6 +5967,7 @@ void GSRendererHW::ClearGSLocalMemory(const GSOffset& off, const GSVector4i& r, pxAssert((off.bp() & (BLOCKS_PER_PAGE - 1)) == 0); for (u32 current_page = off.bp() >> 5; top < page_aligned_bottom; top += pgs.y, current_page += fbw) { + current_page &= 0x7ff; GSVector4i* ptr = reinterpret_cast(m_mem.vm8() + current_page * PAGE_SIZE); GSVector4i* const ptr_end = ptr + iterations_per_page; while (ptr != ptr_end) @@ -5984,6 +5986,7 @@ void GSRendererHW::ClearGSLocalMemory(const GSOffset& off, const GSVector4i& r, pxAssert((off.bp() & (BLOCKS_PER_PAGE - 1)) == 0); for (u32 current_page = off.bp() >> 5; top < page_aligned_bottom; top += pgs.y, current_page += fbw) { + current_page &= 0x7ff; GSVector4i* ptr = reinterpret_cast(m_mem.vm8() + current_page * PAGE_SIZE); GSVector4i* const ptr_end = ptr + iterations_per_page; while (ptr != ptr_end)