diff options
author | Dave Parks <davep@lindenlab.com> | 2022-09-02 21:05:53 -0500 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2022-09-02 21:05:53 -0500 |
commit | 60cc58fbfc23efe133dca3797188462d1b2ae5ab (patch) | |
tree | bf050523965b27aa052267cb4ba583fcf223f04c /indra/llrender/llglslshader.cpp | |
parent | 4c2b80fd00c545cf2e288520c8cf5fa1379d75b4 (diff) |
SL-17967 Fix for confounding program and shader objects when fetching logs and fix for gl errors on AMD windows
Diffstat (limited to 'indra/llrender/llglslshader.cpp')
-rw-r--r-- | indra/llrender/llglslshader.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/indra/llrender/llglslshader.cpp b/indra/llrender/llglslshader.cpp index 91d756c0d1..bc349c2015 100644 --- a/indra/llrender/llglslshader.cpp +++ b/indra/llrender/llglslshader.cpp @@ -348,13 +348,20 @@ void LLGLSLShader::unloadInternal() if (mProgramObject) { GLuint obj[1024]; - GLsizei count; + GLsizei count = 0; glGetAttachedShaders(mProgramObject, 1024, &count, obj); for (GLsizei i = 0; i < count; i++) { glDetachShader(mProgramObject, obj[i]); - glDeleteShader(obj[i]); + } + + for (GLsizei i = 0; i < count; i++) + { + if (glIsShader(obj[i])) + { + glDeleteShader(obj[i]); + } } glDeleteProgram(mProgramObject); |