diff options
author | Olivier Fourdan <ofourdan@redhat.com> | 2018-06-05 19:38:42 +0200 |
---|---|---|
committer | Adam Jackson <ajax@redhat.com> | 2018-06-21 10:54:10 -0400 |
commit | 48f037a27c45b571c9750ac812977ac0a33ab12b (patch) | |
tree | c518d72238c8ee2ea88f246085b37becf84db243 | |
parent | f2fcb4877e976d078b0eb4755177170467341484 (diff) |
xwayland: move EGL backend init to glamor
Move EGL backends initialization to its own function in
xwayland-glamor.c
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
-rw-r--r-- | hw/xwayland/xwayland-glamor.c | 17 | ||||
-rw-r--r-- | hw/xwayland/xwayland.c | 16 | ||||
-rw-r--r-- | hw/xwayland/xwayland.h | 2 |
3 files changed, 21 insertions, 14 deletions
diff --git a/hw/xwayland/xwayland-glamor.c b/hw/xwayland/xwayland-glamor.c index 72995de00..3792dfa8c 100644 --- a/hw/xwayland/xwayland-glamor.c +++ b/hw/xwayland/xwayland-glamor.c @@ -162,6 +162,23 @@ glamor_egl_fd_name_from_pixmap(ScreenPtr screen, return 0; } +void +xwl_glamor_init_backends(struct xwl_screen *xwl_screen, Bool use_eglstream) +{ +#ifdef XWL_HAS_EGLSTREAM + if (use_eglstream) { + if (!xwl_glamor_init_eglstream(xwl_screen)) { + ErrorF("xwayland glamor: failed to setup EGLStream backend\n"); + use_eglstream = FALSE; + } + } +#endif + if (!use_eglstream && !xwl_glamor_init_gbm(xwl_screen)) { + ErrorF("xwayland glamor: failed to setup GBM backend, falling back to sw accel\n"); + xwl_screen->glamor = 0; + } +} + Bool xwl_glamor_init(struct xwl_screen *xwl_screen) { diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c index 806d45675..8c02c02f8 100644 --- a/hw/xwayland/xwayland.c +++ b/hw/xwayland/xwayland.c @@ -992,20 +992,8 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv) } #ifdef XWL_HAS_GLAMOR - if (xwl_screen->glamor) { -#ifdef XWL_HAS_EGLSTREAM - if (use_eglstreams) { - if (!xwl_glamor_init_eglstream(xwl_screen)) { - ErrorF("xwayland glamor: failed to setup EGLStream backend\n"); - use_eglstreams = FALSE; - } - } -#endif - if (!use_eglstreams && !xwl_glamor_init_gbm(xwl_screen)) { - ErrorF("xwayland glamor: failed to setup GBM backend, falling back to sw accel\n"); - xwl_screen->glamor = 0; - } - } + if (xwl_screen->glamor) + xwl_glamor_init_backends(xwl_screen, use_eglstreams); #endif /* In rootless mode, we don't have any screen storage, and the only diff --git a/hw/xwayland/xwayland.h b/hw/xwayland/xwayland.h index 191f1b297..304484ccc 100644 --- a/hw/xwayland/xwayland.h +++ b/hw/xwayland/xwayland.h @@ -423,6 +423,8 @@ Bool xwl_shm_destroy_pixmap(PixmapPtr pixmap); struct wl_buffer *xwl_shm_pixmap_get_wl_buffer(PixmapPtr pixmap); #ifdef XWL_HAS_GLAMOR +void xwl_glamor_init_backends(struct xwl_screen *xwl_screen, + Bool use_eglstream); Bool xwl_glamor_init(struct xwl_screen *xwl_screen); Bool xwl_screen_set_drm_interface(struct xwl_screen *xwl_screen, |