diff options
author | Daniel van Vugt <daniel.van.vugt@canonical.com> | 2022-07-20 09:09:45 +0000 |
---|---|---|
committer | Robert Mader <robert.mader@posteo.de> | 2022-07-29 22:16:12 +0200 |
commit | ccdd2d32771bb0e871f4475fab5d39cbd0324348 (patch) | |
tree | b3a97866a6fad30f747220e657059382cb9725f2 /src | |
parent | c9b6b2fa312288ff06b76eae0836548a8681952e (diff) | |
download | mutter-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)
Diffstat (limited to 'src')
-rw-r--r-- | src/backends/native/meta-renderer-native.c | 28 |
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; |