diff options
author | Dave Parks <davep@lindenlab.com> | 2011-07-17 00:24:08 -0500 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2011-07-17 00:24:08 -0500 |
commit | 6469f1c2f21ecd3b15a18957d882ef6a16b17ecf (patch) | |
tree | 3159983e7a9c6c008d8334bceb672dfc16e2ca35 /indra/llrender/llimagegl.cpp | |
parent | ddbd5cee7480e565e447486a21e67c301a716b1f (diff) |
SH-2031 High risk changeset, but potentially high reward. Addresses frame stalls in renderer by never using the fixed function pipeline if shaders are available.
Diffstat (limited to 'indra/llrender/llimagegl.cpp')
-rw-r--r-- | indra/llrender/llimagegl.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp index 60a5962234..9ca3a23d52 100644 --- a/indra/llrender/llimagegl.cpp +++ b/indra/llrender/llimagegl.cpp @@ -1414,6 +1414,8 @@ BOOL LLImageGL::readBackRaw(S32 discard_level, LLImageRaw* imageraw, bool compre void LLImageGL::deleteDeadTextures() { + bool reset = false; + while (!sDeadTextureList.empty()) { GLuint tex = sDeadTextureList.front(); @@ -1426,12 +1428,22 @@ void LLImageGL::deleteDeadTextures() { tex_unit->unbind(tex_unit->getCurrType()); stop_glerror(); + + if (i > 0) + { + reset = true; + } } } glDeleteTextures(1, &tex); stop_glerror(); } + + if (reset) + { + gGL.getTexUnit(0)->activate(); + } } void LLImageGL::destroyGLTexture() |