added the possibility to allocate aligned memory, an use it to allocate the buffer utilized in texture decoding, this will make a little easy to use aligned writes when possible in sse2/3 optimized algorithms.

some code additions for future use ;).
please gcc user test this as i don't have opportunity to test it myself i only use reference code to.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7247 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Rodolfo Osvaldo Bogado
2011-02-25 20:35:05 +00:00
parent ac6c18a5e4
commit eef715b1cf
9 changed files with 72 additions and 9 deletions

View File

@ -23,7 +23,7 @@ enum
TextureCache *g_texture_cache;
u8 *TextureCache::temp = NULL;
GC_ALIGNED16(u8 *TextureCache::temp) = NULL;
TextureCache::TexCache TextureCache::textures;
bool TextureCache::DeferredInvalidate;
@ -44,7 +44,7 @@ TextureCache::TCacheEntryBase::~TCacheEntryBase()
TextureCache::TextureCache()
{
if (!temp)
temp = (u8*)AllocateMemoryPages(TEMP_SIZE);
temp =(u8*) AllocateAlignedMemory(TEMP_SIZE,16);
TexDecoder_SetTexFmtOverlayOptions(g_ActiveConfig.bTexFmtOverlayEnable, g_ActiveConfig.bTexFmtOverlayCenter);
if(g_ActiveConfig.bHiresTextures && !g_ActiveConfig.bDumpTextures)
HiresTextures::Init(SConfig::GetInstance().m_LocalCoreStartupParameter.m_strUniqueID.c_str());
@ -81,7 +81,7 @@ TextureCache::~TextureCache()
Invalidate(true);
if (temp)
{
FreeMemoryPages(temp, TEMP_SIZE);
FreeAlignedMemory(temp);
temp = NULL;
}
}