GPU/HW: Flush after each primitive for B-F transparency

Slow, but necessary for some games such as Suikoden II, where it draws
multiple polygons to the same area on screen with different transparency
modes.
This commit is contained in:
Connor McLaughlin 2021-01-20 01:08:31 +10:00
parent cbee8fab66
commit a927bfbe50

View file

@ -1089,8 +1089,8 @@ void GPU_HW::DispatchRenderCommand()
const GPUTransparencyMode transparency_mode =
rc.transparency_enable ? m_draw_mode.mode_reg.transparency_mode : GPUTransparencyMode::Disabled;
const bool dithering_enable = (!m_true_color && rc.IsDitheringEnabled()) ? m_GPUSTAT.dither_enable : false;
if (m_batch.texture_mode != texture_mode || m_batch.transparency_mode != transparency_mode ||
dithering_enable != m_batch.dithering)
if (texture_mode != m_batch.texture_mode || transparency_mode != m_batch.transparency_mode ||
transparency_mode == GPUTransparencyMode::BackgroundMinusForeground || dithering_enable != m_batch.dithering)
{
FlushRender();
}