Message ID | 20211007095147.688449-1-kamel.bouhara@bootlin.com |
---|---|
State | Accepted |
Headers | show |
Series | [v3,1/7] package/opengl/libgbm: new virtual package | expand |
Hi Kamal, On 07/10/2021 11:51, Kamel Bouhara wrote: > From: Bernd Kuhls <bernd.kuhls@t-online.de> > > Kodi 18.0-Leia will implement 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/ > > We also introduce two feature that shall help user choosing the version > implemented by a libgbm provider. This foresightly avoid building package > without having the required libgbm version (e.g. kmscube, qt5, sdl2 > etc.) > > 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 <bernd.kuhls@t-online.de> > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> > Signed-off-by: Kamel Bouhara <kamel.bouhara@bootlin.com> > [ Kamel : introduce gbm api features ] Series applied to master, except for 4/7 and 5/7 because they received comments. So sunxi-mali doesn't provide gbm yet. Bernd, if you like to update kodi to take into account libgbm, now you can! Regards, Arnout > --- > Changes v1 -> v2: > - Squashed patch 1/2 > - Added more relevant comment for each features added > Changes v2 -> v3: > - Updated commit message > > 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)) >
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))