diff --git a/configure.ac b/configure.ac index 0f745817..e610e2d1 100644 --- a/configure.ac +++ b/configure.ac @@ -172,6 +172,9 @@ AM_CONDITIONAL(ENABLE_DRM_COMPOSITOR, test x$enable_drm_compositor = xyes) if test x$enable_drm_compositor = xyes; then AC_DEFINE([BUILD_DRM_COMPOSITOR], [1], [Build the DRM compositor]) PKG_CHECK_MODULES(DRM_COMPOSITOR, [libudev >= 136 libdrm >= 2.4.30 gbm mtdev >= 1.1.0]) + PKG_CHECK_MODULES(DRM_COMPOSITOR_GBM, [gbm >= 10.2], + [AC_DEFINE([HAVE_GBM_FD_IMPORT], 1, [gbm supports dmabuf import])], + [AC_MSG_WARN([gbm does not support dmabuf import, will omit that capability])]) fi diff --git a/src/compositor-drm.c b/src/compositor-drm.c index 1bfe263e..26f00124 100644 --- a/src/compositor-drm.c +++ b/src/compositor-drm.c @@ -974,6 +974,7 @@ drm_output_prepare_overlay_view(struct drm_output *output, return NULL; if ((dmabuf = linux_dmabuf_buffer_get(buffer_resource))) { +#ifdef HAVE_GBM_FD_IMPORT /* XXX: TODO: * * Use AddFB2 directly, do not go via GBM. @@ -994,6 +995,9 @@ drm_output_prepare_overlay_view(struct drm_output *output, bo = gbm_bo_import(b->gbm, GBM_BO_IMPORT_FD, &gbm_dmabuf, GBM_BO_USE_SCANOUT); +#else + return NULL; +#endif } else { bo = gbm_bo_import(b->gbm, GBM_BO_IMPORT_WL_BUFFER, buffer_resource, GBM_BO_USE_SCANOUT);