GS/HW: Allow reverse primitive gap checking

This commit is contained in:
refractionpcsx2 2023-08-29 23:29:50 +01:00
parent 124ba2a124
commit 222fad315d
1 changed files with 17 additions and 4 deletions

View File

@ -6166,11 +6166,24 @@ bool GSRendererHW::PrimitiveCoversWithoutGaps()
u32 last_pX = v[1].XYZ.X;
for (u32 i = 2; i < m_vertex.next; i += 2)
{
const u32 dpX = v[i + 1].XYZ.X - v[i].XYZ.X;
if (dpX != first_dpX || v[i].XYZ.X != last_pX)
if (v[i].XYZ.X < v[i-2].XYZ.X)
{
m_primitive_covers_without_gaps = false;
return false;
const u32 dpX = v[i + 1].XYZ.X - v[i].XYZ.X;
const u32 prev_X = v[i - 2].XYZ.X - m_context->XYOFFSET.OFX;
if (dpX != prev_X || v[i].XYZ.X != m_context->XYOFFSET.OFX)
{
m_primitive_covers_without_gaps = false;
return false;
}
}
else
{
const u32 dpX = v[i + 1].XYZ.X - v[i].XYZ.X;
if (dpX != first_dpX || v[i].XYZ.X != last_pX)
{
m_primitive_covers_without_gaps = false;
return false;
}
}
last_pX = v[i + 1].XYZ.X;