From 7c8ffe7efebaf9a962484132a7dbfb4ce086c15a Mon Sep 17 00:00:00 2001 From: Daniel van Vugt Date: Wed, 20 Jul 2022 09:09:45 +0000 Subject: [PATCH] renderer-native: Fall back to ARGB if XRGB is not supported This fixes mutter failing to start on some ARM/Mali boards. Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/2354 Part-of: --- src/backends/native/meta-renderer-native.c | 28 +++++++++++++++++----- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/src/backends/native/meta-renderer-native.c b/src/backends/native/meta-renderer-native.c index d538cc25a..f5f22c7b1 100644 --- a/src/backends/native/meta-renderer-native.c +++ b/src/backends/native/meta-renderer-native.c @@ -416,12 +416,28 @@ meta_renderer_native_choose_egl_config (CoglDisplay *cogl_display, switch (renderer_gpu_data->mode) { case META_RENDERER_NATIVE_MODE_GBM: - return choose_egl_config_from_gbm_format (egl, - egl_display, - attributes, - GBM_FORMAT_XRGB8888, - out_config, - error); + { + static const uint32_t formats[] = { + GBM_FORMAT_XRGB8888, + GBM_FORMAT_ARGB8888, + }; + int i; + + for (i = 0; i < G_N_ELEMENTS (formats); i++) + { + g_clear_error (error); + + if (choose_egl_config_from_gbm_format (egl, + egl_display, + attributes, + formats[i], + out_config, + error)) + return TRUE; + } + + return FALSE; + } case META_RENDERER_NATIVE_MODE_SURFACELESS: *out_config = EGL_NO_CONFIG_KHR; return TRUE;