summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Gavriliuk <alexandrgproductengine@lindenlab.com>2023-09-15 01:37:56 +0200
committerAlexander Gavriliuk <alexandrgproductengine@lindenlab.com>2023-09-15 13:05:54 +0200
commit2b96b06669df6ba4be88b8645127b7b9d09632ed (patch)
tree45b0873ae3f1b42ea5976320fdf1f1ef5fc4cb79
parent6ea31793449031f5438f61b40f43d631d2f4766a (diff)
SL-20279 BugSplat Crash #1327171: gl_debug_callback(111)
-rw-r--r--indra/llrender/llgl.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp
index cfc9ce735d..44f7667d2c 100644
--- a/indra/llrender/llgl.cpp
+++ b/indra/llrender/llgl.cpp
@@ -93,6 +93,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;
+ }
+
if (severity == GL_DEBUG_SEVERITY_HIGH_ARB)
{
LL_WARNS() << "----- GL ERROR --------" << LL_ENDL;
@@ -106,7 +117,8 @@ void APIENTRY gl_debug_callback(GLenum source,
LL_WARNS() << "Severity: " << std::hex << severity << LL_ENDL;
LL_WARNS() << "Message: " << message << LL_ENDL;
LL_WARNS() << "-----------------------" << LL_ENDL;
- if (severity == GL_DEBUG_SEVERITY_HIGH_ARB)
+ // No needs to halt when is called from LLViewerWindow::stopGL()
+ if (severity == GL_DEBUG_SEVERITY_HIGH_ARB && !gGLManager.mIsDisabled)
{
LL_ERRS() << "Halting on GL Error" << LL_ENDL;
}