From 4a541ee93242e67f7fab625607f5501c6925d451 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Thu, 7 Oct 2021 11:51:41 +0200 Subject: [PATCH] package/opengl/libgbm: new virtual package Since 18.0-Leia, Kodi implements stand-alone gbm support alongside x11 & wayland. To enable building libgbm in mesa3d without x11 & wayland we need to create a virtual package for libgbm. Also other packages besides mesa3d may provide libgbm.so, see http://patchwork.ozlabs.org/patch/647235/ http://patchwork.ozlabs.org/patch/939703/ It turns out that libgbm has seen several additions in its API over time, and therefore not all libgbm implementations provide support for all features. In order to account for this, this commit adds two hidden boolean options that allow libgbm providers to indicate which optional features they support: BR2_PACKAGE_LIBGBM_HAS_FEATURE_FORMAT_MODIFIER_PLANE_COUNT and BR2_PACKAGE_LIBGBM_HAS_FEATURE_DMA_BUF. These booleans must be selected by the packages providing libgbm implementations, and depended on by packages using libgbm. Signed-off-by: Bernd Kuhls Signed-off-by: Thomas Petazzoni Signed-off-by: Kamel Bouhara [ Kamel : introduce gbm api features ] Signed-off-by: Arnout Vandecappelle (Essensium/Mind) --- package/opengl/Config.in | 1 + package/opengl/libgbm/Config.in | 24 ++++++++++++++++++++++++ package/opengl/libgbm/libgbm.mk | 9 +++++++++ 3 files changed, 34 insertions(+) create mode 100644 package/opengl/libgbm/Config.in create mode 100644 package/opengl/libgbm/libgbm.mk diff --git a/package/opengl/Config.in b/package/opengl/Config.in index cbc001427d..cfa51def45 100644 --- a/package/opengl/Config.in +++ b/package/opengl/Config.in @@ -1,5 +1,6 @@ source "package/opengl/libgl/Config.in" source "package/opengl/libegl/Config.in" +source "package/opengl/libgbm/Config.in" source "package/opengl/libgles/Config.in" source "package/opengl/libopencl/Config.in" source "package/opengl/libopenvg/Config.in" diff --git a/package/opengl/libgbm/Config.in b/package/opengl/libgbm/Config.in new file mode 100644 index 0000000000..7aa3efb97a --- /dev/null +++ b/package/opengl/libgbm/Config.in @@ -0,0 +1,24 @@ +config BR2_PACKAGE_HAS_LIBGBM + bool + +config BR2_PACKAGE_PROVIDES_LIBGBM + string + depends on BR2_PACKAGE_HAS_LIBGBM + +config BR2_PACKAGE_LIBGBM_HAS_FEATURE_FORMAT_MODIFIER_PLANE_COUNT + bool + depends on BR2_PACKAGE_HAS_LIBGBM + +# gbm implementations should select this option if they provide the +# format modifier plane count feature. This API was initially introduced +# in mesa3d version 17. A gbm implementation provides this feature if it +# is implement function gbm_device_get_format_modifier_plane_count. + +config BR2_PACKAGE_LIBGBM_HAS_FEATURE_DMA_BUF + bool + depends on BR2_PACKAGE_HAS_LIBGBM + +# gbm implementations should select this option if they provide the +# dma buffer feature. This API was initially introduced in mesa3d +# version 10. A gbm implementation provides this feature if it +# is implement function gbm_bo_get_fd. diff --git a/package/opengl/libgbm/libgbm.mk b/package/opengl/libgbm/libgbm.mk new file mode 100644 index 0000000000..ecab234720 --- /dev/null +++ b/package/opengl/libgbm/libgbm.mk @@ -0,0 +1,9 @@ +################################################################################ +# +# libgbm +# +################################################################################ + +# This package requires to install a gbm.pc which needs +# to be provided by GBM providers. +$(eval $(virtual-package))