diff options
author | Ruslan Teliuk <ruslantproductengine@lindenlab.com> | 2016-03-14 18:23:44 +0200 |
---|---|---|
committer | Ruslan Teliuk <ruslantproductengine@lindenlab.com> | 2016-03-14 18:23:44 +0200 |
commit | bcf2686d39f5048a6be1823735eb0c5d2084fd8e (patch) | |
tree | f205afc77db3376354ebea6f26eed6f6e05a4c16 | |
parent | 230fc28d8a72e75a8f2af2ab5fa5ee0e3ccca4a1 (diff) | |
parent | 173886fec32f2f5a8b63e81997f5929b02ddc8c9 (diff) |
Merged in ruslantproductengine/viewer-lion-ruslan-teliuk-4-code-review (pull request #26)
MAINT-1109 FIXED Toggling graphics options causes viewer memory to increase, eventually causing the rendering pipeline to fall over and crashing the viewer
-rwxr-xr-x | indra/llrender/llglslshader.cpp | 9 | ||||
-rwxr-xr-x | indra/newview/llviewerwindow.cpp | 7 |
2 files changed, 9 insertions, 7 deletions
diff --git a/indra/llrender/llglslshader.cpp b/indra/llrender/llglslshader.cpp index 52b8de8365..750e35a71a 100755 --- a/indra/llrender/llglslshader.cpp +++ b/indra/llrender/llglslshader.cpp @@ -345,15 +345,10 @@ void LLGLSLShader::unloadInternal() GLhandleARB obj[1024]; GLsizei count; - glGetAttachedObjectsARB(mProgramObject, 1024, &count, obj); + glGetAttachedObjectsARB(mProgramObject, sizeof(obj)/sizeof(obj[0]), &count, obj); for (GLsizei i = 0; i < count; i++) { -#if !LL_DARWIN - if (glIsProgramARB(obj[i])) -#endif - { - glDeleteObjectARB(obj[i]); - } + glDeleteObjectARB(obj[i]); } glDeleteObjectARB(mProgramObject); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index f96c4b7bf0..d3416ec5fc 100755 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -4951,6 +4951,13 @@ void LLViewerWindow::stopGL(BOOL save_state) gGLManager.mIsDisabled = TRUE; stop_glerror(); + + //unload shader's + while (LLGLSLShader::sInstances.size()) + { + LLGLSLShader* shader = *(LLGLSLShader::sInstances.begin()); + shader->unload(); + } LL_INFOS() << "Remaining allocated texture memory: " << LLImageGL::sGlobalTextureMemory.value() << " bytes" << LL_ENDL; } |