summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPablo Correa Gómez <ablocorrea@hotmail.com>2021-10-31 16:06:58 +0100
committerRay Strode <halfline@gmail.com>2022-02-15 20:04:27 +0000
commit6575663b405e8b9fa0372ed73b45d2ba2759a0c9 (patch)
tree95cec5653e4ebf5ab191c61c27763840a812b49f
parent4415fa832390490df1fcb70a3f756255ce449557 (diff)
downloadgnome-session-6575663b405e8b9fa0372ed73b45d2ba2759a0c9.tar.gz
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.
-rw-r--r--tools/gnome-session-check-accelerated.c14
1 files 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 (&gtk_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 (&gtk_gles_error);
+ }
return 1;
}