gsdx hw: Fix regression on align sprite

The hack also updates position of not texture mapped sprite.

Unlike the 2nd hack (round sprite) which can be skipped if TME is disabled
This commit is contained in:
Gregory Hainaut 2016-05-09 09:43:24 +02:00
parent 23782b5c24
commit 4effc70792
1 changed files with 5 additions and 2 deletions

View File

@ -583,7 +583,9 @@ void GSRendererHW::Draw()
context->ZBUF.ZMSK = zm != 0;
// A couple of hack to avoid upscaling issue. So far it seems to impacts mostly sprite
if ((m_upscale_multiplier > 1) && draw_sprite_tex) {
// Note: first hack corrects both position and texture coordinate
// Note: second hack corrects only the texture coordinate
if ((m_upscale_multiplier > 1) && (m_vt.m_primclass == GS_SPRITE_CLASS)) {
size_t count = m_vertex.next;
GSVertex* v = &m_vertex.buff[0];
@ -608,7 +610,8 @@ void GSRendererHW::Draw()
}
}
if (PRIM->FST) {
// Noting to do if no texture is sampled
if (PRIM->FST && draw_sprite_tex) {
if ((m_userhacks_round_sprite_offset > 1) || (m_userhacks_round_sprite_offset == 1 && !m_vt.IsLinear())) {
if (m_vt.IsLinear())
RoundSpriteOffset<true>();