summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llrender/llgl.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp
index 4c7c8e6f5c..f7fb46e310 100644
--- a/indra/llrender/llgl.cpp
+++ b/indra/llrender/llgl.cpp
@@ -94,6 +94,17 @@ void APIENTRY gl_debug_callback(GLenum source,
return;
}*/
+ if (gGLManager.mIsDisabled &&
+ severity == GL_DEBUG_SEVERITY_HIGH_ARB &&
+ source == GL_DEBUG_SOURCE_API_ARB &&
+ type == GL_DEBUG_TYPE_ERROR_ARB &&
+ id == GL_INVALID_VALUE)
+ {
+ // Suppress messages about deleting already deleted objects called from LLViewerWindow::stopGL()
+ // "GL_INVALID_VALUE error generated. Handle does not refer to an object generated by OpenGL."
+ return;
+ }
+
// list of messages to suppress
const char* suppress[] =
{
@@ -148,8 +159,9 @@ void APIENTRY gl_debug_callback(GLenum source,
glGetBufferParameteriv(GL_UNIFORM_BUFFER, GL_BUFFER_SIZE, &ubo_size);
glGetBufferParameteriv(GL_UNIFORM_BUFFER, GL_BUFFER_IMMUTABLE_STORAGE, &ubo_immutable);
}
-
- if (severity == GL_DEBUG_SEVERITY_HIGH)
+
+ // No needs to halt when is called from LLViewerWindow::stopGL()
+ if (severity == GL_DEBUG_SEVERITY_HIGH && !gGLManager.mIsDisabled)
{
LL_ERRS() << "Halting on GL Error" << LL_ENDL;
}