hopefully fixed zww issue with new efb to ram.

implemented new efb to ram in opengl
modified TextureConversionShader preparing the implementation of new efb to ram in dx11
please test for regressions

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5874 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Rodolfo Osvaldo Bogado committed 2010-07-12 19:30:25 +00:00
1 parent dcc51e0ef8
commit 9cb41e7c70
11 files changed
+445 -287

No files matched your search

@@ -90,15 +90,9 @@ void TextureCache::InvalidateRange(u32 start_address, u32 size)
iter->second.Destroy(false);
textures.erase(iter++);
}
else {
if(rangePosition<0)
{
++iter;
}
else
{
break;
}
else
{
++iter;
}
}
}
@@ -113,11 +107,6 @@ void TextureCache::MakeRangeDynamic(u32 start_address, u32 size)
{
iter->second.hash = 0;
}
else
{
if(rangePosition > 0)
break;
}
++iter;
}
}
@@ -145,17 +134,8 @@ void TextureCache::Cleanup()
{
if (frameCount > TEXTURE_KILL_THRESHOLD + iter->second.frameCount)
{
if (!iter->second.isRenderTarget)
{
iter->second.Destroy(false);
iter = textures.erase(iter);
}
else
{
// Used to be just iter++
iter->second.Destroy(false);
iter = textures.erase(iter);
}
iter->second.Destroy(false);
iter = textures.erase(iter);
}
else
{
@@ -247,11 +227,10 @@ TextureCache::TCacheEntry *TextureCache::Load(int stage, u32 address, int width,
}
}
if (((entry.isRenderTarget || entry.isDinamic) && hash_value == entry.hash && address == entry.addr)
|| ((address == entry.addr)
&& (hash_value == entry.hash)
&& FullFormat == entry.fmt/* && entry.MipLevels == maxlevel*/))
|| ((address == entry.addr) && (hash_value == entry.hash) && FullFormat == entry.fmt/* && entry.MipLevels == maxlevel*/))
{
entry.frameCount = frameCount;
entry.isDinamic = false;
D3D::SetTexture(stage, entry.texture);
return &entry;
}