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)
 {