From e5cd4da823fe61e57c2d4bb829e39a587276af09 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Thu, 14 Apr 2022 22:24:11 +0300 Subject: SL-17035 Crash at gl_debug_callback RenderDebugGL was avaliable from develop menu, but since it was persistent, caused slowdowns and crashes it could result in users crashing or lagging without knowing the cause. To resolve the issue it was made to last for a single session. --- indra/llrender/llgl.cpp | 7 +++---- indra/llrender/llgl.h | 1 + 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'indra/llrender') diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp index 43fedeca64..43e2c5751c 100644 --- a/indra/llrender/llgl.cpp +++ b/indra/llrender/llgl.cpp @@ -60,10 +60,10 @@ BOOL gDebugSession = FALSE; +BOOL gDebugGLSession = FALSE; BOOL gClothRipple = FALSE; BOOL gHeadlessClient = FALSE; BOOL gGLActive = FALSE; -BOOL gGLDebugLoggingEnabled = TRUE; static const std::string HEADLESS_VENDOR_STRING("Linden Lab"); static const std::string HEADLESS_RENDERER_STRING("Headless"); @@ -85,8 +85,6 @@ void APIENTRY gl_debug_callback(GLenum source, const GLchar* message, GLvoid* userParam) { - if (gGLDebugLoggingEnabled) - { if (severity == GL_DEBUG_SEVERITY_HIGH_ARB) { LL_WARNS() << "----- GL ERROR --------" << LL_ENDL; @@ -100,11 +98,12 @@ 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; +#ifndef LL_RELEASE_FOR_DOWNLOAD if (severity == GL_DEBUG_SEVERITY_HIGH_ARB) { LL_ERRS() << "Halting on GL Error" << LL_ENDL; } -} +#endif //LL_RELEASE_FOR_DOWNLOAD } #endif diff --git a/indra/llrender/llgl.h b/indra/llrender/llgl.h index a07e2d9bb0..ad4d69cde4 100644 --- a/indra/llrender/llgl.h +++ b/indra/llrender/llgl.h @@ -47,6 +47,7 @@ extern BOOL gDebugGL; extern BOOL gDebugSession; +extern BOOL gDebugGLSession; extern llofstream gFailLog; #define LL_GL_ERRS LL_ERRS("RenderState") -- cgit v1.2.3 From c184c882c634035ad54e13b6e2534a0725cf9b3a Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Fri, 15 Apr 2022 00:13:18 +0300 Subject: SL-17035 Reverted a part of previous commit According to davep, the intent of Debug GL is to crash and in this it's doing it's job, but the rest of the fix that makes the state not persist is a good solution. --- indra/llrender/llgl.cpp | 2 -- 1 file changed, 2 deletions(-) (limited to 'indra/llrender') diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp index 43e2c5751c..08b2f9fa7d 100644 --- a/indra/llrender/llgl.cpp +++ b/indra/llrender/llgl.cpp @@ -98,12 +98,10 @@ 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; -#ifndef LL_RELEASE_FOR_DOWNLOAD if (severity == GL_DEBUG_SEVERITY_HIGH_ARB) { LL_ERRS() << "Halting on GL Error" << LL_ENDL; } -#endif //LL_RELEASE_FOR_DOWNLOAD } #endif -- cgit v1.2.3 From a426e8ddb31260cbc56106d433d967ebcb9b99aa Mon Sep 17 00:00:00 2001 From: Andrey Lihatskiy Date: Fri, 27 May 2022 19:05:14 +0300 Subject: DRTVWR-543 post-merge cleanup --- indra/llrender/llgl.cpp | 51 ++++++++++++++++++++++--------------------------- 1 file changed, 23 insertions(+), 28 deletions(-) (limited to 'indra/llrender') diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp index c5eea734ac..2b7ce155f6 100644 --- a/indra/llrender/llgl.cpp +++ b/indra/llrender/llgl.cpp @@ -65,7 +65,6 @@ BOOL gClothRipple = FALSE; BOOL gHeadlessClient = FALSE; BOOL gNonInteractive = FALSE; BOOL gGLActive = FALSE; -BOOL gGLDebugLoggingEnabled = TRUE; static const std::string HEADLESS_VENDOR_STRING("Linden Lab"); static const std::string HEADLESS_RENDERER_STRING("Headless"); @@ -87,34 +86,30 @@ void APIENTRY gl_debug_callback(GLenum source, const GLchar* message, GLvoid* userParam) { - if (gGLDebugLoggingEnabled) - { - - if (severity != GL_DEBUG_SEVERITY_HIGH_ARB && - severity != GL_DEBUG_SEVERITY_MEDIUM_ARB && - severity != GL_DEBUG_SEVERITY_LOW_ARB) - { //suppress out-of-spec messages sent by nvidia driver (mostly vertexbuffer hints) - return; - } - - if (severity == GL_DEBUG_SEVERITY_HIGH_ARB) - { - LL_WARNS() << "----- GL ERROR --------" << LL_ENDL; - } - else - { - LL_WARNS() << "----- GL WARNING -------" << LL_ENDL; - } - LL_WARNS() << "Type: " << std::hex << type << LL_ENDL; - LL_WARNS() << "ID: " << std::hex << id << LL_ENDL; - 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) - { - LL_ERRS() << "Halting on GL Error" << LL_ENDL; - } + if (severity != GL_DEBUG_SEVERITY_HIGH_ARB && + severity != GL_DEBUG_SEVERITY_MEDIUM_ARB && + severity != GL_DEBUG_SEVERITY_LOW_ARB) + { //suppress out-of-spec messages sent by nvidia driver (mostly vertexbuffer hints) + return; } + + if (severity == GL_DEBUG_SEVERITY_HIGH_ARB) + { + LL_WARNS() << "----- GL ERROR --------" << LL_ENDL; + } + else + { + LL_WARNS() << "----- GL WARNING -------" << LL_ENDL; + } + LL_WARNS() << "Type: " << std::hex << type << LL_ENDL; + LL_WARNS() << "ID: " << std::hex << id << LL_ENDL; + 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) + { + LL_ERRS() << "Halting on GL Error" << LL_ENDL; + } } #endif -- cgit v1.2.3