Index: plugins/GSdx/GSTextureCache.cpp =================================================================== --- plugins/GSdx/GSTextureCache.cpp (revision 2068) +++ plugins/GSdx/GSTextureCache.cpp (working copy) @@ -140,6 +140,16 @@ Target* dst = NULL; + int multiplier = m_renderer->accurateScaleMulti(); + if (!m_renderer->CanUpscale()) + multiplier = 1; + + GSVector4 &scissor = m_renderer->m_context->scissor.ex; + int scissorheight = scissor.w - scissor.y; + + w = TEX0.TBW * 64 * multiplier; + h = scissorheight * multiplier; + for(list::iterator i = m_dst[type].begin(); i != m_dst[type].end(); i++) { Target* t = *i; @@ -170,38 +180,8 @@ dst->Update(); } - if(m_renderer->CanUpscale()) - { - int multiplier = m_renderer->accurateScaleMulti(); - if (multiplier > 1) //it's limited to a maximum of 4 on reading the config - { - dst->m_texture->SetScale(GSVector2((float)multiplier, (float)multiplier)); - } - else - { + dst->m_texture->SetScale(GSVector2((float)multiplier, (float)multiplier)); - GSVector4i fr = m_renderer->GetFrameRect(); - - int ww = (int)(fr.left + dst->m_TEX0.TBW * 64); - int hh = (int)(fr.top + m_renderer->GetDisplayRect().height()); - - if(hh <= m_renderer->GetDeviceSize().y / 2) - { - hh *= 2; - } - - if(hh < 512 && m_renderer->m_context->SCISSOR.SCAY1 == 511) // vp2 - { - hh = 512; - } - - if(ww > 0 && hh > 0) - { - dst->m_texture->SetScale(GSVector2((float)w / ww, (float)h / hh)); - } - } - } - if(used) { dst->m_used = true;