mirror of https://github.com/PCSX2/pcsx2.git
GSdx: This fixes the flickering in Bully, and probably games with the same problem. Could not check Valkyrie Profile Silmeria, yet.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5012 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
7dfff148b8
commit
bc7a930409
|
@ -192,6 +192,21 @@ void GSRendererSW::Draw()
|
||||||
data->syncpoint = true;
|
data->syncpoint = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(m_context->FRAME.Block() == m_context->ZBUF.Block())
|
||||||
|
{
|
||||||
|
// Writing the same address in a different format is incompatible with our screen splitting technique,
|
||||||
|
// it must not necessarily be done by the same batch, enough if there are two in the queue one after eachother,
|
||||||
|
// first it writes frame buffer at address X, then as z buffer also at address X, due to format differences the
|
||||||
|
// block layout in memory is not the same.
|
||||||
|
//
|
||||||
|
// Most of these situations are detected by the previous m_fzb != m_context->offset.fzb check,
|
||||||
|
// but when FRAME.Block() == ZBUF.Block() and f/z writes are switched on/off mutually then offset.fzb stays the same.
|
||||||
|
//
|
||||||
|
// Bully: FBP/ZBP = 0x2300
|
||||||
|
|
||||||
|
data->syncpoint = true;
|
||||||
|
}
|
||||||
|
|
||||||
GSVector4i r = data->bbox.rintersect(data->scissor);
|
GSVector4i r = data->bbox.rintersect(data->scissor);
|
||||||
|
|
||||||
if(gd->sel.fwrite)
|
if(gd->sel.fwrite)
|
||||||
|
|
Loading…
Reference in New Issue