diff options
author | Daniel Stone <daniels@collabora.com> | 2018-04-02 17:14:53 +0100 |
---|---|---|
committer | Jonas Ã…dahl <jadahl@gmail.com> | 2018-04-03 18:17:04 +0000 |
commit | e6109cfc22f06412e67bd3c1f9f0dfa6ad7e0b19 (patch) | |
tree | c4e70ba73ccd73d6352d558a26231192333a9001 | |
parent | 3684f6b0ac6157f2f85e0ae473d834fa474fd72d (diff) | |
download | mutter-e6109cfc22f06412e67bd3c1f9f0dfa6ad7e0b19.tar.gz |
renderer-native: Fall back to non-modifier GBM surfaces
If we attempt GBM surface allocation with a set of modifiers but the
allocation fails, fall back to non-modifier allocations. This fixes
startup on Pineview-based Atom systems, where KMS provides us a set of
modifiers but the GBM implementation doesn't support modifier use.
Closes: https://gitlab.gnome.org/GNOME/mutter/issues/84
-rw-r--r-- | src/backends/native/meta-renderer-native.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/backends/native/meta-renderer-native.c b/src/backends/native/meta-renderer-native.c index 1fc593ad5..2717f7d2e 100644 --- a/src/backends/native/meta-renderer-native.c +++ b/src/backends/native/meta-renderer-native.c @@ -1996,7 +1996,7 @@ meta_renderer_native_create_surface_gbm (CoglOnscreen *onscreen, CoglRenderer *cogl_renderer = cogl_display->renderer; CoglRendererEGL *cogl_renderer_egl = cogl_renderer->winsys; MetaRendererNativeGpuData *renderer_gpu_data = cogl_renderer_egl->platform; - struct gbm_surface *new_gbm_surface; + struct gbm_surface *new_gbm_surface = NULL; EGLNativeWindowType egl_native_window; EGLSurface new_egl_surface; uint32_t format = GBM_FORMAT_XRGB8888; @@ -2017,7 +2017,8 @@ meta_renderer_native_create_surface_gbm (CoglOnscreen *onscreen, modifiers->len); g_array_free (modifiers, TRUE); } - else + + if (!new_gbm_surface) { uint32_t flags = GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING; |