All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] package/mesa3d: gbm needs a DRI driver or a Gallium driver w/ EGL
@ 2020-02-19 19:10 Romain Naour
  2020-02-22 16:53 ` Bernd Kuhls
  2020-02-22 19:40 ` Yann E. MORIN
  0 siblings, 2 replies; 4+ messages in thread
From: Romain Naour @ 2020-02-19 19:10 UTC (permalink / raw)
  To: buildroot

src/gbm/cd6bfad@@gbm at sha/main_backend.c.o: In function `_gbm_create_device':
backend.c:(.text+0x38): undefined reference to `gbm_dri_backend'
backend.c:(.text+0x40): undefined reference to `gbm_dri_backend'
backend.c:(.text+0x74): undefined reference to `gbm_dri_backend'
backend.c:(.text+0x78): undefined reference to `gbm_dri_backend'
collect2: error: ld returned 1 exit status

This issue has been trigged since [1]:
"package/mesa3d: add option to configure gbm support"

Before the patch, the gbm support was autodetected by meson and enabled
only when at least one dri driver was enabled [2].

On the Buildroot side, the gbm support was explicitely enabled only when
BR2_PACKAGE_MESA3D_OPENGL_EGL was set.

We have two cases:
- At least one DRI driver.
- No DRI driver but one Gallium w/ EGL enable (EGL selected or not by the
  Gallium driver). In this case the meson build system set with_dri to true
  (even if no DRI driver is enabled) to use the builtin:egl_dri2 [3].

The gbm's meson build system seems to handle the case where no dri driver is
enabled [4] but it still use main/backend.c source file [6] that use
gbm_dri_backend [7]. So with_dri2 must always be set.

Probably a missing check in meson.build:

 if with_gbm and not with_dri
   error('GBM backend needs a dri driver or a gallium driver w/ EGL support.')
 endif

Add a dependency on GBM option:

 depends on BR2_PACKAGE_MESA3D_DRI_DRIVER \
         || (BR2_PACKAGE_MESA3D_GALLIUM_DRIVER && BR2_PACKAGE_MESA3D_OPENGL_EGL)

Fixes:
http://autobuild.buildroot.net/results/b9b6281983388dc22d929887d653da3db60f1f2c

[1] b6c051acf787c804e732bc58ba8d7e440701a168
[2] https://gitlab.freedesktop.org/mesa/mesa/blob/19.3/meson.build#L348
[3] https://gitlab.freedesktop.org/mesa/mesa/blob/19.3/meson.build#L212
[4] https://gitlab.freedesktop.org/mesa/mesa/blob/19.3/src/gbm/meson.build#L37
[5] https://gitlab.freedesktop.org/mesa/mesa/blob/19.3/src/gbm/meson.build#L24
[6] https://gitlab.freedesktop.org/mesa/mesa/blob/19.3/src/gbm/main/backend.c#L38
[7] http://lists.busybox.net/pipermail/buildroot/2020-February/274425.html

Signed-off-by: Romain Naour <romain.naour@smile.fr>
Cc: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 package/mesa3d/Config.in | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
index dbfc59bad5..0788f47137 100644
--- a/package/mesa3d/Config.in
+++ b/package/mesa3d/Config.in
@@ -400,9 +400,15 @@ comment "OpenGL API Support"
 
 config BR2_PACKAGE_MESA3D_GBM
 	bool "gbm"
+	depends on BR2_PACKAGE_MESA3D_DRI_DRIVER \
+		|| (BR2_PACKAGE_MESA3D_GALLIUM_DRIVER && BR2_PACKAGE_MESA3D_OPENGL_EGL)
 	help
 	  Enable Generic Buffer Management (gbm)
 
+comment "gbm support needs a dri driver or a gallium driver w/ EGL support."
+	depends on !BR2_PACKAGE_MESA3D_DRI_DRIVER \
+		|| !(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER && BR2_PACKAGE_MESA3D_OPENGL_EGL)
+
 config BR2_PACKAGE_MESA3D_OPENGL_GLX
 	bool "OpenGL GLX"
 	depends on BR2_PACKAGE_XORG7
-- 
2.21.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH] package/mesa3d: gbm needs a DRI driver or a Gallium driver w/ EGL
  2020-02-19 19:10 [Buildroot] [PATCH] package/mesa3d: gbm needs a DRI driver or a Gallium driver w/ EGL Romain Naour
@ 2020-02-22 16:53 ` Bernd Kuhls
  2020-02-22 19:40 ` Yann E. MORIN
  1 sibling, 0 replies; 4+ messages in thread
From: Bernd Kuhls @ 2020-02-22 16:53 UTC (permalink / raw)
  To: buildroot

Am Wed, 19 Feb 2020 20:10:13 +0100 schrieb Romain Naour:

> Fixes:
> http://autobuild.buildroot.net/results/
b9b6281983388dc22d929887d653da3db60f1f2c

Tested-by: Bernd Kuhls <bernd.kuhls@t-online.de>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH] package/mesa3d: gbm needs a DRI driver or a Gallium driver w/ EGL
  2020-02-19 19:10 [Buildroot] [PATCH] package/mesa3d: gbm needs a DRI driver or a Gallium driver w/ EGL Romain Naour
  2020-02-22 16:53 ` Bernd Kuhls
@ 2020-02-22 19:40 ` Yann E. MORIN
  2020-02-22 19:41   ` Yann E. MORIN
  1 sibling, 1 reply; 4+ messages in thread
From: Yann E. MORIN @ 2020-02-22 19:40 UTC (permalink / raw)
  To: buildroot

Romain, All,

On 2020-02-19 20:10 +0100, Romain Naour spake thusly:
> src/gbm/cd6bfad@@gbm at sha/main_backend.c.o: In function `_gbm_create_device':
> backend.c:(.text+0x38): undefined reference to `gbm_dri_backend'
> backend.c:(.text+0x40): undefined reference to `gbm_dri_backend'
> backend.c:(.text+0x74): undefined reference to `gbm_dri_backend'
> backend.c:(.text+0x78): undefined reference to `gbm_dri_backend'
> collect2: error: ld returned 1 exit status
> 
> This issue has been trigged since [1]:
> "package/mesa3d: add option to configure gbm support"
> 
> Before the patch, the gbm support was autodetected by meson and enabled
> only when at least one dri driver was enabled [2].
> 
> On the Buildroot side, the gbm support was explicitely enabled only when
> BR2_PACKAGE_MESA3D_OPENGL_EGL was set.
> 
> We have two cases:
> - At least one DRI driver.
> - No DRI driver but one Gallium w/ EGL enable (EGL selected or not by the
>   Gallium driver). In this case the meson build system set with_dri to true
>   (even if no DRI driver is enabled) to use the builtin:egl_dri2 [3].
> 
> The gbm's meson build system seems to handle the case where no dri driver is
> enabled [4] but it still use main/backend.c source file [6] that use
> gbm_dri_backend [7]. So with_dri2 must always be set.
> 
> Probably a missing check in meson.build:
> 
>  if with_gbm and not with_dri
>    error('GBM backend needs a dri driver or a gallium driver w/ EGL support.')
>  endif
> 
> Add a dependency on GBM option:
> 
>  depends on BR2_PACKAGE_MESA3D_DRI_DRIVER \
>          || (BR2_PACKAGE_MESA3D_GALLIUM_DRIVER && BR2_PACKAGE_MESA3D_OPENGL_EGL)
> 
> Fixes:
> http://autobuild.buildroot.net/results/b9b6281983388dc22d929887d653da3db60f1f2c
> 
> [1] b6c051acf787c804e732bc58ba8d7e440701a168
> [2] https://gitlab.freedesktop.org/mesa/mesa/blob/19.3/meson.build#L348
> [3] https://gitlab.freedesktop.org/mesa/mesa/blob/19.3/meson.build#L212
> [4] https://gitlab.freedesktop.org/mesa/mesa/blob/19.3/src/gbm/meson.build#L37
> [5] https://gitlab.freedesktop.org/mesa/mesa/blob/19.3/src/gbm/meson.build#L24
> [6] https://gitlab.freedesktop.org/mesa/mesa/blob/19.3/src/gbm/main/backend.c#L38
> [7] http://lists.busybox.net/pipermail/buildroot/2020-February/274425.html
> 
> Signed-off-by: Romain Naour <romain.naour@smile.fr>
> Cc: Bernd Kuhls <bernd.kuhls@t-online.de>

So, with the other patch you sent later (and that I already applied),
the conditions for gbm are now very strict, to the point where there is
only three conditions under wich it is freely selectable: one of the DRI
drivers is enabled, *and* OSMesa is enabled.

Now, gbm depends on Galium and EGL, but EGL forcibly selects GBM.

So the comment that states "gbm needs [...] gallium and EGL", alrhough
technically correct, is totally useless, because enabling EGL gives no
choice as it forcibly enables gbm.

I know mesa3d is complex, but our packaging of it really looks like it
is overly complicated for no good reasons. It evolved organically over
the years, and probably now is a good time for a full revamp of the
package.

Any taker?

Regards,
Yann E. MORIN.

> ---
>  package/mesa3d/Config.in | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
> index dbfc59bad5..0788f47137 100644
> --- a/package/mesa3d/Config.in
> +++ b/package/mesa3d/Config.in
> @@ -400,9 +400,15 @@ comment "OpenGL API Support"
>  
>  config BR2_PACKAGE_MESA3D_GBM
>  	bool "gbm"
> +	depends on BR2_PACKAGE_MESA3D_DRI_DRIVER \
> +		|| (BR2_PACKAGE_MESA3D_GALLIUM_DRIVER && BR2_PACKAGE_MESA3D_OPENGL_EGL)
>  	help
>  	  Enable Generic Buffer Management (gbm)
>  
> +comment "gbm support needs a dri driver or a gallium driver w/ EGL support."
> +	depends on !BR2_PACKAGE_MESA3D_DRI_DRIVER \
> +		|| !(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER && BR2_PACKAGE_MESA3D_OPENGL_EGL)
> +
>  config BR2_PACKAGE_MESA3D_OPENGL_GLX
>  	bool "OpenGL GLX"
>  	depends on BR2_PACKAGE_XORG7
> -- 
> 2.21.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH] package/mesa3d: gbm needs a DRI driver or a Gallium driver w/ EGL
  2020-02-22 19:40 ` Yann E. MORIN
@ 2020-02-22 19:41   ` Yann E. MORIN
  0 siblings, 0 replies; 4+ messages in thread
From: Yann E. MORIN @ 2020-02-22 19:41 UTC (permalink / raw)
  To: buildroot

Romain, All,

On 2020-02-22 20:40 +0100, Yann E. MORIN spake thusly:
> On 2020-02-19 20:10 +0100, Romain Naour spake thusly:
> > src/gbm/cd6bfad@@gbm at sha/main_backend.c.o: In function `_gbm_create_device':
> > backend.c:(.text+0x38): undefined reference to `gbm_dri_backend'
> > backend.c:(.text+0x40): undefined reference to `gbm_dri_backend'
> > backend.c:(.text+0x74): undefined reference to `gbm_dri_backend'
> > backend.c:(.text+0x78): undefined reference to `gbm_dri_backend'
> > collect2: error: ld returned 1 exit status
> > 
> > This issue has been trigged since [1]:
> > "package/mesa3d: add option to configure gbm support"
> > 
> > Before the patch, the gbm support was autodetected by meson and enabled
> > only when at least one dri driver was enabled [2].
> > 
> > On the Buildroot side, the gbm support was explicitely enabled only when
> > BR2_PACKAGE_MESA3D_OPENGL_EGL was set.
> > 
> > We have two cases:
> > - At least one DRI driver.
> > - No DRI driver but one Gallium w/ EGL enable (EGL selected or not by the
> >   Gallium driver). In this case the meson build system set with_dri to true
> >   (even if no DRI driver is enabled) to use the builtin:egl_dri2 [3].
> > 
> > The gbm's meson build system seems to handle the case where no dri driver is
> > enabled [4] but it still use main/backend.c source file [6] that use
> > gbm_dri_backend [7]. So with_dri2 must always be set.
> > 
> > Probably a missing check in meson.build:
> > 
> >  if with_gbm and not with_dri
> >    error('GBM backend needs a dri driver or a gallium driver w/ EGL support.')
> >  endif
> > 
> > Add a dependency on GBM option:
> > 
> >  depends on BR2_PACKAGE_MESA3D_DRI_DRIVER \
> >          || (BR2_PACKAGE_MESA3D_GALLIUM_DRIVER && BR2_PACKAGE_MESA3D_OPENGL_EGL)
> > 
> > Fixes:
> > http://autobuild.buildroot.net/results/b9b6281983388dc22d929887d653da3db60f1f2c
> > 
> > [1] b6c051acf787c804e732bc58ba8d7e440701a168
> > [2] https://gitlab.freedesktop.org/mesa/mesa/blob/19.3/meson.build#L348
> > [3] https://gitlab.freedesktop.org/mesa/mesa/blob/19.3/meson.build#L212
> > [4] https://gitlab.freedesktop.org/mesa/mesa/blob/19.3/src/gbm/meson.build#L37
> > [5] https://gitlab.freedesktop.org/mesa/mesa/blob/19.3/src/gbm/meson.build#L24
> > [6] https://gitlab.freedesktop.org/mesa/mesa/blob/19.3/src/gbm/main/backend.c#L38
> > [7] http://lists.busybox.net/pipermail/buildroot/2020-February/274425.html
> > 
> > Signed-off-by: Romain Naour <romain.naour@smile.fr>
> > Cc: Bernd Kuhls <bernd.kuhls@t-online.de>

And,,, Applied to master, thanks.

Regards,
Yann E. MORIN.

> So, with the other patch you sent later (and that I already applied),
> the conditions for gbm are now very strict, to the point where there is
> only three conditions under wich it is freely selectable: one of the DRI
> drivers is enabled, *and* OSMesa is enabled.
> 
> Now, gbm depends on Galium and EGL, but EGL forcibly selects GBM.
> 
> So the comment that states "gbm needs [...] gallium and EGL", alrhough
> technically correct, is totally useless, because enabling EGL gives no
> choice as it forcibly enables gbm.
> 
> I know mesa3d is complex, but our packaging of it really looks like it
> is overly complicated for no good reasons. It evolved organically over
> the years, and probably now is a good time for a full revamp of the
> package.
> 
> Any taker?
> 
> Regards,
> Yann E. MORIN.
> 
> > ---
> >  package/mesa3d/Config.in | 6 ++++++
> >  1 file changed, 6 insertions(+)
> > 
> > diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
> > index dbfc59bad5..0788f47137 100644
> > --- a/package/mesa3d/Config.in
> > +++ b/package/mesa3d/Config.in
> > @@ -400,9 +400,15 @@ comment "OpenGL API Support"
> >  
> >  config BR2_PACKAGE_MESA3D_GBM
> >  	bool "gbm"
> > +	depends on BR2_PACKAGE_MESA3D_DRI_DRIVER \
> > +		|| (BR2_PACKAGE_MESA3D_GALLIUM_DRIVER && BR2_PACKAGE_MESA3D_OPENGL_EGL)
> >  	help
> >  	  Enable Generic Buffer Management (gbm)
> >  
> > +comment "gbm support needs a dri driver or a gallium driver w/ EGL support."
> > +	depends on !BR2_PACKAGE_MESA3D_DRI_DRIVER \
> > +		|| !(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER && BR2_PACKAGE_MESA3D_OPENGL_EGL)
> > +
> >  config BR2_PACKAGE_MESA3D_OPENGL_GLX
> >  	bool "OpenGL GLX"
> >  	depends on BR2_PACKAGE_XORG7
> > -- 
> > 2.21.1
> > 
> > _______________________________________________
> > buildroot mailing list
> > buildroot at busybox.net
> > http://lists.busybox.net/mailman/listinfo/buildroot
> 
> -- 
> .-----------------.--------------------.------------------.--------------------.
> |  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
> | +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
> | +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
> '------------------------------^-------^------------------^--------------------'
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-02-22 19:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-19 19:10 [Buildroot] [PATCH] package/mesa3d: gbm needs a DRI driver or a Gallium driver w/ EGL Romain Naour
2020-02-22 16:53 ` Bernd Kuhls
2020-02-22 19:40 ` Yann E. MORIN
2020-02-22 19:41   ` Yann E. MORIN

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.