summaryrefslogtreecommitdiff
path: root/indra/llrender/llglslshader.cpp
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2022-09-02 21:05:53 -0500
committerDave Parks <davep@lindenlab.com>2022-09-02 21:05:53 -0500
commit60cc58fbfc23efe133dca3797188462d1b2ae5ab (patch)
treebf050523965b27aa052267cb4ba583fcf223f04c /indra/llrender/llglslshader.cpp
parent4c2b80fd00c545cf2e288520c8cf5fa1379d75b4 (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.cpp11
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);