GPU: Halve draw ticks for 480i even with force progressive

Fixes some of the games broken with the enhancement on.
This commit is contained in:
Connor McLaughlin 2020-09-19 21:15:53 +10:00
parent 5b1ed7903b
commit 1d5af57f71

View file

@ -445,7 +445,7 @@ protected:
ticks_per_row += average_width; ticks_per_row += average_width;
if (semitransparent || m_GPUSTAT.check_mask_before_draw) if (semitransparent || m_GPUSTAT.check_mask_before_draw)
ticks_per_row += (average_width + 1u) / 2u; ticks_per_row += (average_width + 1u) / 2u;
if (IsInterlacedRenderingEnabled()) if (m_GPUSTAT.SkipDrawingToActiveField())
height = std::max<u32>(height / 2, 1u); height = std::max<u32>(height / 2, 1u);
AddCommandTicks(ticks_per_row * height); AddCommandTicks(ticks_per_row * height);
@ -457,14 +457,14 @@ protected:
ticks_per_row += width; ticks_per_row += width;
if (semitransparent || m_GPUSTAT.check_mask_before_draw) if (semitransparent || m_GPUSTAT.check_mask_before_draw)
ticks_per_row += (width + 1u) / 2u; ticks_per_row += (width + 1u) / 2u;
if (IsInterlacedRenderingEnabled()) if (m_GPUSTAT.SkipDrawingToActiveField())
height = std::max<u32>(height / 2, 1u); height = std::max<u32>(height / 2, 1u);
AddCommandTicks(ticks_per_row * height); AddCommandTicks(ticks_per_row * height);
} }
ALWAYS_INLINE void AddDrawLineTicks(u32 width, u32 height, bool shaded) ALWAYS_INLINE void AddDrawLineTicks(u32 width, u32 height, bool shaded)
{ {
if (IsInterlacedRenderingEnabled()) if (m_GPUSTAT.SkipDrawingToActiveField())
height = std::max<u32>(height / 2, 1u); height = std::max<u32>(height / 2, 1u);
AddCommandTicks(std::max(width, height)); AddCommandTicks(std::max(width, height));