GSDX: partially revert texture cache changes for now. Compat probably back to normal, some glitchy textures are probably differently glitchy, the other changes might improve some games, performance probably much the same as ever.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5300 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
sudonim1@gmail.com 2012-06-17 14:33:34 +00:00
parent 14acb81553
commit a617a6c983
1 changed files with 10 additions and 14 deletions

View File

@ -452,10 +452,7 @@ void GSTextureCache::InvalidateLocalMem(GSOffset* o, const GSVector4i& r)
// note: r.rintersect breaks Wizardry and Chaos Legion // note: r.rintersect breaks Wizardry and Chaos Legion
// Read(t, t->m_valid) works in all tested games but is very slow in GUST titles >< // Read(t, t->m_valid) works in all tested games but is very slow in GUST titles ><
if (r.x == 0 && r.y == 0) // Full screen read? if (r.x == 0 && r.y == 0) // Full screen read?
{
Read(t, t->m_valid); Read(t, t->m_valid);
t->m_valid = GSVector4i::zero();
}
else // Block level read? else // Block level read?
Read(t, r.rintersect(t->m_valid)); Read(t, r.rintersect(t->m_valid));
} }
@ -586,9 +583,6 @@ GSTextureCache::Source* GSTextureCache::CreateSource(const GIFRegTEX0& TEX0, con
bool hack = false; bool hack = false;
if (dst)
dst->Update();
if(m_spritehack && (TEX0.PSM == PSM_PSMT8 || TEX0.PSM == PSM_PSMT8H)) if(m_spritehack && (TEX0.PSM == PSM_PSMT8 || TEX0.PSM == PSM_PSMT8H))
{ {
src->m_spritehack_t = true; src->m_spritehack_t = true;
@ -599,14 +593,21 @@ GSTextureCache::Source* GSTextureCache::CreateSource(const GIFRegTEX0& TEX0, con
else else
src->m_spritehack_t = false; src->m_spritehack_t = false;
if (dst && dst->m_type == RenderTarget if (dst)
&& (dst->m_TEX0.PSM == TEX0.PSM || dst->m_TEX0.PSM == PSM_PSMCT32 && TEX0.PSM == PSM_PSMCT24
|| m_paltex && dst->m_TEX0.PSM == PSM_PSMCT32 && TEX0.PSM == PSM_PSMT8H))
{ {
// TODO: clean up this mess // TODO: clean up this mess
src->m_target = true; src->m_target = true;
if(dst->m_type != RenderTarget)
{
// TODO
delete src;
return NULL;
}
dst->Update();
GSTexture* tmp = NULL; GSTexture* tmp = NULL;
if(dst->m_texture->IsMSAA()) if(dst->m_texture->IsMSAA())
@ -773,11 +774,6 @@ GSTextureCache::Source* GSTextureCache::CreateSource(const GIFRegTEX0& TEX0, con
} }
else else
{ {
if (dst)
{
Read(dst, dst->m_valid);
dst->m_valid = GSVector4i::zero();
}
if (m_paltex && psm.pal > 0) if (m_paltex && psm.pal > 0)
{ {
src->m_texture = m_renderer->m_dev->CreateTexture(tw, th, Get8bitFormat()); src->m_texture = m_renderer->m_dev->CreateTexture(tw, th, Get8bitFormat());