gsdx hack: hole in vertex position also appears in !FST projection

Fix various black vertical line regression with UserHacks_align_sprite_X
This commit is contained in:
Gregory Hainaut 2015-04-15 09:40:06 +02:00
parent 65a84b9f64
commit e8698a9c0c
1 changed files with 10 additions and 6 deletions

View File

@ -461,7 +461,7 @@ void GSRendererHW::Draw()
context->ZBUF.ZMSK = zm != 0; context->ZBUF.ZMSK = zm != 0;
// A couple of hack to avoid upscaling issue. So far it seems to impacts only sprite without linear filtering // A couple of hack to avoid upscaling issue. So far it seems to impacts only sprite without linear filtering
if ((m_upscale_multiplier > 1) && (m_vt.m_primclass == GS_SPRITE_CLASS) && (PRIM->FST)) { if ((m_upscale_multiplier > 1) && (m_vt.m_primclass == GS_SPRITE_CLASS)) {
// TODO: It could be a good idea to check context->CLAMP.WMS/WMT values on the following hack // TODO: It could be a good idea to check context->CLAMP.WMS/WMT values on the following hack
size_t count = m_vertex.next; size_t count = m_vertex.next;
@ -487,11 +487,15 @@ void GSRendererHW::Draw()
} }
} }
if ((m_userhacks_round_sprite_offset > 1) || (m_userhacks_round_sprite_offset == 1 && !m_vt.IsLinear())) { if (PRIM->FST) {
if (m_vt.IsLinear()) if ((m_userhacks_round_sprite_offset > 1) || (m_userhacks_round_sprite_offset == 1 && !m_vt.IsLinear())) {
RoundSpriteOffset<true>(); if (m_vt.IsLinear())
else RoundSpriteOffset<true>();
RoundSpriteOffset<false>(); else
RoundSpriteOffset<false>();
}
} else {
; // vertical line in Yakuza (note check m_userhacks_align_sprite_X behavior)
} }
} }