backend-drm: Add dmabuf scan-out check for DRM-backend
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
diff --git a/libweston/backend-drm/fb.c b/libweston/backend-drm/fb.c
index e978b08..fcbabbe 100644
--- a/libweston/backend-drm/fb.c
+++ b/libweston/backend-drm/fb.c
@@ -509,6 +509,24 @@
}
#ifdef BUILD_DRM_GBM
+bool
+drm_can_scanout_dmabuf(struct weston_compositor *ec,
+ struct linux_dmabuf_buffer *dmabuf)
+{
+ struct drm_fb *fb;
+ struct drm_backend *b = to_drm_backend(ec);
+ bool ret = false;
+
+ fb = drm_fb_get_from_dmabuf(dmabuf, b, true);
+ if (fb)
+ ret = true;
+
+ drm_fb_unref(fb);
+ drm_debug(b, "[dmabuf] dmabuf %p, import test %s\n", dmabuf,
+ ret ? "succeeded" : "failed");
+ return ret;
+}
+
struct drm_fb *
drm_fb_get_from_view(struct drm_output_state *state, struct weston_view *ev)
{