From f0c632131e60f9909ae9997be745eac8b337c0bf Mon Sep 17 00:00:00 2001 From: Henrik Rydgard Date: Mon, 11 Feb 2013 19:03:11 +0100 Subject: [PATCH] Flush the draw buffer less. Default aniso to 0 on mobile, 8 on PC/the rest. --- Core/Config.cpp | 6 ++++- GPU/GLES/DisplayListInterpreter.cpp | 38 ++++++++++++++--------------- GPU/GLES/TextureCache.cpp | 2 +- 3 files changed, 25 insertions(+), 21 deletions(-) diff --git a/Core/Config.cpp b/Core/Config.cpp index d74b337bed..5a26c8035d 100644 --- a/Core/Config.cpp +++ b/Core/Config.cpp @@ -67,7 +67,11 @@ void CConfig::Load(const char *iniFileName) graphics->Get("LinearFiltering", &bLinearFiltering, false); graphics->Get("SSAA", &SSAntiAliasing, 0); graphics->Get("VBO", &bUseVBO, false); - graphics->Get("AnisotropyLevel", &iAnisotropyLevel, 4); +#ifdef USING_GLES2 + graphics->Get("AnisotropyLevel", &iAnisotropyLevel, 0); +#else + graphics->Get("AnisotropyLevel", &iAnisotropyLevel, 8); +#endif graphics->Get("DisableG3DLog", &bDisableG3DLog, false); graphics->Get("VertexCache", &bVertexCache, true); graphics->Get("FullScreen", &bFullScreen, false); diff --git a/GPU/GLES/DisplayListInterpreter.cpp b/GPU/GLES/DisplayListInterpreter.cpp index 3d38b7d7ed..eb793ecaf5 100644 --- a/GPU/GLES/DisplayListInterpreter.cpp +++ b/GPU/GLES/DisplayListInterpreter.cpp @@ -117,6 +117,24 @@ static const int flushOnChangedBeforeCommandList[] = { GE_CMD_ZTEST, GE_CMD_MASKRGB, GE_CMD_MASKALPHA, + GE_CMD_TEXBUFWIDTH0, + GE_CMD_CLUTADDR, + GE_CMD_LOADCLUT, + GE_CMD_CLUTFORMAT, + GE_CMD_TEXADDR0,GE_CMD_TEXADDR1,GE_CMD_TEXADDR2,GE_CMD_TEXADDR3, + GE_CMD_TEXADDR4,GE_CMD_TEXADDR5,GE_CMD_TEXADDR6,GE_CMD_TEXADDR7, + GE_CMD_TEXSIZE0,GE_CMD_TEXSIZE1,GE_CMD_TEXSIZE2,GE_CMD_TEXSIZE3, + GE_CMD_TEXSIZE4,GE_CMD_TEXSIZE5,GE_CMD_TEXSIZE6,GE_CMD_TEXSIZE7, + GE_CMD_OFFSETX, + GE_CMD_OFFSETY, + GE_CMD_MORPHWEIGHT0,GE_CMD_MORPHWEIGHT1,GE_CMD_MORPHWEIGHT2,GE_CMD_MORPHWEIGHT3, + GE_CMD_MORPHWEIGHT4,GE_CMD_MORPHWEIGHT5,GE_CMD_MORPHWEIGHT6,GE_CMD_MORPHWEIGHT7, + GE_CMD_REGION1,GE_CMD_REGION2, + GE_CMD_FRAMEBUFPTR, + GE_CMD_FRAMEBUFWIDTH, + GE_CMD_FRAMEBUFPIXFORMAT, + GE_CMD_ZBUFPTR, + GE_CMD_ZBUFWIDTH, }; static const int flushBeforeCommandList[] = { @@ -125,26 +143,8 @@ static const int flushBeforeCommandList[] = { GE_CMD_SIGNAL, GE_CMD_FINISH, GE_CMD_BJUMP, - GE_CMD_REGION1,GE_CMD_REGION2, - GE_CMD_FRAMEBUFPTR, - GE_CMD_FRAMEBUFWIDTH, - GE_CMD_FRAMEBUFPIXFORMAT, - GE_CMD_TEXADDR0, - GE_CMD_CLUTADDR, - GE_CMD_LOADCLUT, - GE_CMD_CLUTFORMAT, GE_CMD_TRANSFERSTART, - GE_CMD_TEXBUFWIDTH0, - GE_CMD_TEXSIZE0,GE_CMD_TEXSIZE1,GE_CMD_TEXSIZE2,GE_CMD_TEXSIZE3, - GE_CMD_TEXSIZE4,GE_CMD_TEXSIZE5,GE_CMD_TEXSIZE6,GE_CMD_TEXSIZE7, - GE_CMD_ZBUFPTR, - GE_CMD_ZBUFWIDTH, - GE_CMD_OFFSETY, - GE_CMD_OFFSETX, - GE_CMD_OFFSETY, - GE_CMD_TEXFLUSH, - GE_CMD_MORPHWEIGHT0,GE_CMD_MORPHWEIGHT1,GE_CMD_MORPHWEIGHT2,GE_CMD_MORPHWEIGHT3, - GE_CMD_MORPHWEIGHT4,GE_CMD_MORPHWEIGHT5,GE_CMD_MORPHWEIGHT6,GE_CMD_MORPHWEIGHT7, + //GE_CMD_TEXFLUSH, // These handle their own flushing. /* GE_CMD_WORLDMATRIXNUMBER, diff --git a/GPU/GLES/TextureCache.cpp b/GPU/GLES/TextureCache.cpp index ab80502fa9..73b36a4eab 100644 --- a/GPU/GLES/TextureCache.cpp +++ b/GPU/GLES/TextureCache.cpp @@ -860,7 +860,7 @@ void TextureCache::SetTexture() { #endif glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_LOD, (float)entry->maxLevel); float anisotropyLevel = (float) g_Config.iAnisotropyLevel > maxAnisotropyLevel ? maxAnisotropyLevel : (float) g_Config.iAnisotropyLevel; - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, anisotropyLevel ); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, anisotropyLevel); // NOTICE_LOG(G3D,"AnisotropyLevel = %0.1f , MaxAnisotropyLevel = %0.1f ", anisotropyLevel, maxAnisotropyLevel ); UpdateSamplingParams(*entry, true);