summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel van Vugt <daniel.van.vugt@canonical.com>2022-07-20 09:09:45 +0000
committerRobert Mader <robert.mader@posteo.de>2022-07-29 22:16:12 +0200
commitccdd2d32771bb0e871f4475fab5d39cbd0324348 (patch)
treeb3a97866a6fad30f747220e657059382cb9725f2
parentc9b6b2fa312288ff06b76eae0836548a8681952e (diff)
downloadmutter-ccdd2d32771bb0e871f4475fab5d39cbd0324348.tar.gz
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: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2519> (cherry picked from commit 7c8ffe7efebaf9a962484132a7dbfb4ce086c15a)
-rw-r--r--src/backends/native/meta-renderer-native.c28
1 files 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;