[gnome-session] tools: do not discard error creating renderer in wayland case
- From: Ray Strode <halfline src gnome org>
 
- To: commits-list gnome org
 
- Cc: 
 
- Subject: [gnome-session] tools: do not discard error creating renderer in wayland case
 
- Date: Tue, 15 Feb 2022 20:04:49 +0000 (UTC)
 
commit 6575663b405e8b9fa0372ed73b45d2ba2759a0c9
Author: Pablo Correa Gómez <ablocorrea hotmail com>
Date:   Sun Oct 31 16:06:58 2021 +0100
    tools: do not discard error creating renderer in wayland case
    
    When errors occur during accelerated checks under wayland, the
    cause of the error is currently discarded. Getting the error and
    printing it using g_printerr simplifies the debugging process and
    could help users to provide better bug reports.
 tools/gnome-session-check-accelerated.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)
---
diff --git a/tools/gnome-session-check-accelerated.c b/tools/gnome-session-check-accelerated.c
index 0cd16c3f..3765f521 100644
--- a/tools/gnome-session-check-accelerated.c
+++ b/tools/gnome-session-check-accelerated.c
@@ -93,7 +93,7 @@ wait_for_property_notify (void)
 }
 
 static char *
-get_gtk_gles_renderer (void)
+get_gtk_gles_renderer (GError **error)
 {
         GtkWidget *win;
         GdkGLContext *context;
@@ -101,7 +101,7 @@ get_gtk_gles_renderer (void)
 
         win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
         gtk_widget_realize (win);
-        context = gdk_window_create_gl_context (gtk_widget_get_window (win), NULL);
+        context = gdk_window_create_gl_context (gtk_widget_get_window (win), error);
         if (!context)
                 return NULL;
         gdk_gl_context_make_current (context);
@@ -137,7 +137,7 @@ main (int argc, char **argv)
         gboolean gl_software_rendering = FALSE, gles_software_rendering = FALSE;
         Window rootwin;
         glong is_accelerated, is_software_rendering;
-        GError *gl_error = NULL, *gles_error = NULL;
+        GError *gl_error = NULL, *gles_error = NULL, *gtk_gles_error = NULL;
 
         gtk_init (NULL, NULL);
 
@@ -148,11 +148,17 @@ main (int argc, char **argv)
          * when requesting information about the second.
          */
         if (is_discrete_gpu_check () || g_strcmp0 (g_getenv ("XDG_SESSION_TYPE"), "x11") != 0) {
-                g_autofree char *discrete_renderer_string = get_gtk_gles_renderer ();
+                g_autofree char *discrete_renderer_string = get_gtk_gles_renderer (>k_gles_error);
                 if (discrete_renderer_string) {
                         g_print ("%s", discrete_renderer_string);
                         return 0;
                 }
+                if (gtk_gles_error != NULL) {
+                        g_printerr ("gnome-session-check-accelerated: "
+                                    "Failed to get GTK GLES renderer: %s\n",
+                                    gtk_gles_error->message);
+                        g_clear_error (>k_gles_error);
+                }
                 return 1;
         }
 
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]