diff --git a/pcsx2/GS/GSState.cpp b/pcsx2/GS/GSState.cpp index e6c8fdeb7fc1b..e7328dfecd32e 100644 --- a/pcsx2/GS/GSState.cpp +++ b/pcsx2/GS/GSState.cpp @@ -4003,7 +4003,17 @@ GSState::TextureMinMaxResult GSState::GetTextureMinMax(GIFRegTEX0 TEX0, GIFRegCL const bool inc_x = vr.x < tr.z; const bool inc_y = vr.y < tr.w; - vr = (vr + GSVector4i(inc_x ? 0 : -1, inc_y ? 0 : -1, inc_x ? 1 : 0, inc_y ? 1 : 0).xxyy()).rintersect(tr); + vr = (vr + GSVector4i(inc_x ? 0 : -1, inc_y ? 0 : -1, inc_x ? 1 : 0, inc_y ? 1 : 0)).rintersect(tr); + } + else if (vr.xzxz().rempty()) + { + const bool inc_x = vr.x < tr.z; + vr = (vr + GSVector4i(inc_x ? 0 : -1, 0, inc_x ? 1 : 0, 0)).rintersect(tr); + } + else if (vr.ywyw().rempty()) + { + const bool inc_y = vr.y < tr.w; + vr = (vr + GSVector4i(0, inc_y ? 0 : -1, 0, inc_y ? 1 : 0)).rintersect(tr); } return { vr, uses_border };