diff --git a/Source/Core/VideoBackends/Software/EfbCopy.cpp b/Source/Core/VideoBackends/Software/EfbCopy.cpp index c23ca5622c..15a3fb3a02 100644 --- a/Source/Core/VideoBackends/Software/EfbCopy.cpp +++ b/Source/Core/VideoBackends/Software/EfbCopy.cpp @@ -3,6 +3,8 @@ #include "VideoBackends/Software/EfbCopy.h" +#include + #include "Common/CommonTypes.h" #include "Common/Logging/Log.h" #include "Core/HW/Memmap.h" @@ -11,6 +13,7 @@ #include "VideoCommon/BPMemory.h" #include "VideoCommon/Fifo.h" +#include "VideoCommon/VideoCommon.h" namespace EfbCopy { @@ -21,8 +24,8 @@ void ClearEfb() int left = bpmem.copyTexSrcXY.x; int top = bpmem.copyTexSrcXY.y; - int right = left + bpmem.copyTexSrcWH.x; - int bottom = top + bpmem.copyTexSrcWH.y; + int right = std::min(left + bpmem.copyTexSrcWH.x, EFB_WIDTH - 1); + int bottom = std::min(top + bpmem.copyTexSrcWH.y, EFB_HEIGHT - 1); for (u16 y = top; y <= bottom; y++) {