From: Pekka Paalanen <[email protected]> v2 changes: - only initialize linux_dmabuf if renderer supports it
Signed-off-by: Pekka Paalanen <[email protected]> Reviewed-by: Daniel Stone <[email protected]> --- src/compositor-drm.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/compositor-drm.c b/src/compositor-drm.c index f24fa0b..59d869c 100644 --- a/src/compositor-drm.c +++ b/src/compositor-drm.c @@ -55,6 +55,7 @@ #include "launcher-util.h" #include "vaapi-recorder.h" #include "presentation_timing-server-protocol.h" +#include "linux-dmabuf.h" #ifndef DRM_CAP_TIMESTAMP_MONOTONIC #define DRM_CAP_TIMESTAMP_MONOTONIC 0x6 @@ -2789,10 +2790,13 @@ static void switch_to_gl_renderer(struct drm_compositor *c) { struct drm_output *output; + bool dmabuf_support_inited; if (!c->use_pixman) return; + dmabuf_support_inited = !!c->base.renderer->import_dmabuf; + weston_log("Switching to GL renderer\n"); c->gbm = create_gbm_device(c->drm.fd); @@ -2818,6 +2822,12 @@ switch_to_gl_renderer(struct drm_compositor *c) drm_output_init_egl(output, c); c->use_pixman = 0; + + if (!dmabuf_support_inited && c->base.renderer->import_dmabuf) { + if (linux_dmabuf_setup(&c->base) < 0) + weston_log("Error: initializing dmabuf " + "support failed.\n"); + } } static void @@ -2983,6 +2993,12 @@ drm_compositor_create(struct wl_display *display, weston_compositor_add_debug_binding(&ec->base, KEY_W, renderer_switch_binding, ec); + if (ec->base.renderer->import_dmabuf) { + if (linux_dmabuf_setup(&ec->base) < 0) + weston_log("Error: initializing dmabuf " + "support failed.\n"); + } + return &ec->base; err_udev_monitor: -- 2.3.6 _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
