glcontext: Use different log levels for GL debug
authorBenjamin Otte <otte@redhat.com>
Sat, 25 Dec 2021 13:41:20 +0000 (14:41 +0100)
committerBenjamin Otte <otte@redhat.com>
Sat, 25 Dec 2021 14:07:44 +0000 (15:07 +0100)
We want critical GL debug messages to be critical, so that the testsuite
sudokus itself when they appear.

This is relevant in particular for GLES warnings in the GLES runner,
because its warnings can cause crashes on GL drivers less forgiving than
Mesa.

Related: #4571

gdk/gdkglcontext.c

index 9ab690f6fa110858a89bebb157754b71d8e395a3..f8af9275a0c484a45e792e2a1fd37ebf3b900b47 100644 (file)
@@ -1329,6 +1329,7 @@ gl_debug_message_callback (GLenum        source,
   const char *message_source;
   const char *message_type;
   const char *message_severity;
+  GLogLevelFlags log_level;
 
   if (severity == GL_DEBUG_SEVERITY_NOTIFICATION)
     return;
@@ -1390,22 +1391,31 @@ gl_debug_message_callback (GLenum        source,
     {
     case GL_DEBUG_SEVERITY_HIGH:
       message_severity = "High";
+      log_level = G_LOG_LEVEL_CRITICAL;
       break;
     case GL_DEBUG_SEVERITY_MEDIUM:
       message_severity = "Medium";
+      log_level = G_LOG_LEVEL_WARNING;
       break;
     case GL_DEBUG_SEVERITY_LOW:
       message_severity = "Low";
+      log_level = G_LOG_LEVEL_MESSAGE;
       break;
     case GL_DEBUG_SEVERITY_NOTIFICATION:
       message_severity = "Notification";
+      log_level = G_LOG_LEVEL_INFO;
       break;
     default:
       message_severity = "Unknown";
+      log_level = G_LOG_LEVEL_MESSAGE;
     }
 
-  g_warning ("OPENGL:\n    Source: %s\n    Type: %s\n    Severity: %s\n    Message: %s",
-             message_source, message_type, message_severity, message);
+  /* There's no higher level function taking a log level argument... */
+  g_log_structured_standard (G_LOG_DOMAIN, log_level,
+                             __FILE__, G_STRINGIFY (__LINE__),
+                             G_STRFUNC,
+                             "OPENGL:\n    Source: %s\n    Type: %s\n    Severity: %s\n    Message: %s",
+                             message_source, message_type, message_severity, message);
 }
 
 /**