From 60b354a661e80f7e5c94d9be78b35c2f1f0f6be7 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sun, 17 Jan 2021 19:57:32 -0800 Subject: [PATCH] GPU: Fix safe size checks when rect offscreen. --- GPU/Common/SoftwareTransformCommon.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GPU/Common/SoftwareTransformCommon.cpp b/GPU/Common/SoftwareTransformCommon.cpp index 0a369204b9..89a4606450 100644 --- a/GPU/Common/SoftwareTransformCommon.cpp +++ b/GPU/Common/SoftwareTransformCommon.cpp @@ -471,8 +471,8 @@ void SoftwareTransform::Decode(int prim, u32 vertType, const DecVtxFormat &decVt if (!result->setSafeSize && prim == GE_PRIM_RECTANGLES && maxIndex == 2) { bool clearingColor = gstate.isModeClear() && (gstate.isClearModeColorMask() || gstate.isClearModeAlphaMask()); bool writingColor = gstate.getColorMask() != 0xFFFFFFFF; - bool startsZeroX = transformed[0].x <= 0.0f && transformed[1].x > transformed[0].x; - bool startsZeroY = transformed[0].y <= 0.0f && transformed[1].y > transformed[0].y; + bool startsZeroX = transformed[0].x <= 0.0f && transformed[1].x > 0.0f && transformed[1].x > transformed[0].x; + bool startsZeroY = transformed[0].y <= 0.0f && transformed[1].y > 0.0f && transformed[1].y > transformed[0].y; if (startsZeroX && startsZeroY && (clearingColor || writingColor)) { int scissorX2 = gstate.getScissorX2() + 1;