Skip to contentSkip to conversation

Add virtual package for full-openGL (branch yem/fixes)

PATCH New Yann E. MORIN 6 participants 22 messages Mar 31, 2014 – Apr 3, 2014

lore
Share & tools
lore
#0 lore raw

cover Add virtual package for full-openGL (branch yem/fixes)

From: "Yann E. MORIN" <[email protected]>

Hello All!

This series introduces a virtual package for full-openGL providers.

- to start with, patch #1 introduces a quick fix to the current circular dependency hell observed after the mesa3d move outside of X.org.

- then, patch 2 introduces a virtual package for full-openGL providers.

- next, in patch 3, mesa3d is converted to a provider for full-openGL.

- patch 4 converts vlc to use this full-openGL virtual package.

- finally, patches 5 and 6 fix the dependency on mesa3d for x11 drivers, and the X11 server.

In all this series, patch 1 is really an urgent workaround, and should be applied asap, while the rest of the series is being hammered on, since it fixes a real problem we're having right now, and for which the complete solution is not trivial.

I'd like to thank Paul for his very helpful comments on IRC while I was banging my head in despair on my keyboard (which will not help my keyboard-dislexia, by-the-way!) Thanks! :-)

Regards,
Yann E. MORIN.

The following changes since commit ba53265b9c2d1d54bdde96becee20613f6d688c3:

ifplugd: fix typo introduced in previous commit (2014-03-30 17:32:46 +0200)

are available in the git repository at:

git://gitorious.org/buildroot/buildroot.git yem/fixes

for you to fetch changes up to 1b076cbf2210b52a525e05b9a560f6b916561938:

package/xorg-server: do not force-select xf86driproto for mesa3d (2014-03-31 23:44:19 +0200)

----------------------------------------------------------------
Yann E. MORIN (6):
package/libevas: quick fix to get rid of circular deps package/libgl: introduce as a new virtual package for full-openGL providers package/mesa3d: is a full-openGL provider if X.org is present package/vlc: depends on the virtual package libgl package/x11-video-drivers: do not select, but depends on mesa3d package/xorg-server: do not force-select xf86driproto for mesa3d

 package/efl/libevas/Config.in                         |  2 +-
 package/mesa3d/Config.in                              |  4 ++++
 package/opengl/Config.in                              |  1 +
 package/opengl/libgl/Config.in                        |  6 ++++++
 package/opengl/libgl/libgl.mk                         | 16 ++++++++++++++++
 package/vlc/vlc.mk                                    |  4 ++--
 package/x11r7/xdriver_xf86-video-ati/Config.in        |  5 ++++-
 package/x11r7/xdriver_xf86-video-glint/Config.in      |  5 ++++-
 package/x11r7/xdriver_xf86-video-intel/Config.in      |  7 +++++--
 package/x11r7/xdriver_xf86-video-mach64/Config.in     |  3 +++
 package/x11r7/xdriver_xf86-video-mga/Config.in        |  5 ++++-
 package/x11r7/xdriver_xf86-video-openchrome/Config.in |  5 ++++-
 package/x11r7/xdriver_xf86-video-r128/Config.in       |  5 ++++-
 package/x11r7/xdriver_xf86-video-savage/Config.in     |  5 ++++-
 package/x11r7/xdriver_xf86-video-sis/Config.in        |  5 ++++-
 package/x11r7/xdriver_xf86-video-tdfx/Config.in       |  5 ++++-
 package/x11r7/xdriver_xf86-video-vmware/Config.in     |  5 ++++-
 package/x11r7/xserver_xorg-server/Config.in           |  1 -
 18 files changed, 74 insertions(+), 15 deletions(-)
 create mode 100644 package/opengl/libgl/Config.in
 create mode 100644 package/opengl/libgl/libgl.mk
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#1 lore raw

PATCH 1/6 package/libevas: quick fix to get rid of circular deps

From: "Yann E. MORIN" <[email protected]>

This is a quick workaround against the recently-introduced circular dependencies hell:

package/xbmc/Config.in:10:error: recursive dependency detected!
package/xbmc/Config.in:10: symbol BR2_PACKAGE_XBMC depends on BR2_PACKAGE_HAS_OPENGL_EGL
package/opengl/libegl/Config.in:1: symbol BR2_PACKAGE_HAS_OPENGL_EGL is selected by BR2_PACKAGE_MESA3D_OPENGL_EGL
package/mesa3d/Config.in:92: symbol BR2_PACKAGE_MESA3D_OPENGL_EGL depends on BR2_PACKAGE_MESA3D
package/mesa3d/Config.in:1: symbol BR2_PACKAGE_MESA3D is selected by BR2_PACKAGE_LIBEVAS_GL
package/efl/libevas/Config.in:149: symbol BR2_PACKAGE_LIBEVAS_GL is part of choice <choice>
package/efl/libevas/Config.in:144: choice <choice> contains symbol <choice>
package/efl/libevas/Config.in:144: choice <choice> contains symbol BR2_PACKAGE_LIBEVAS_SDL_GL
package/efl/libevas/Config.in:90: symbol BR2_PACKAGE_LIBEVAS_SDL_GL depends on BR2_PACKAGE_SDL_X11
package/sdl/Config.in:24: symbol BR2_PACKAGE_SDL_X11 depends on BR2_PACKAGE_SDL
package/sdl/Config.in:1: symbol BR2_PACKAGE_SDL is selected by BR2_PACKAGE_PYTHON_PYGAME
package/python-pygame/Config.in:1: symbol BR2_PACKAGE_PYTHON_PYGAME depends on BR2_PACKAGE_PYTHON
package/python/Config.in:1: symbol BR2_PACKAGE_PYTHON is selected by BR2_PACKAGE_XBMC

Until this is properly fixed with the addition of a virtual package for full-openGL providers, just depend on mesa3d instead of selecting it.

Cc Bernd Kuhls <[email protected]>
Cc Thomas Petazzoni <[email protected]>
---
 package/efl/libevas/Config.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/efl/libevas/Config.in +1 -1
index 2afa888..8eea23d 100644
@@ -148,7 +148,7 @@ choice
 
 config BR2_PACKAGE_LIBEVAS_GL
 	bool "generic OpenGL"
-	select BR2_PACKAGE_MESA3D
+	depends on BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_LIBEET
 
 config BR2_PACKAGE_LIBEVAS_GLES_SGX
Signature · 1 line
1.8.3.2
#2 lore raw

PATCH 1/6 package/libevas: quick fix to get rid of circular deps

Quoted 19 lines · Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

This is a quick workaround against the recently-introduced circular dependencies hell:

package/xbmc/Config.in:10:error: recursive dependency detected!
package/xbmc/Config.in:10: symbol BR2_PACKAGE_XBMC depends on BR2_PACKAGE_HAS_OPENGL_EGL
package/opengl/libegl/Config.in:1: symbol BR2_PACKAGE_HAS_OPENGL_EGL is selected by BR2_PACKAGE_MESA3D_OPENGL_EGL
package/mesa3d/Config.in:92: symbol BR2_PACKAGE_MESA3D_OPENGL_EGL depends on BR2_PACKAGE_MESA3D
package/mesa3d/Config.in:1: symbol BR2_PACKAGE_MESA3D is selected by BR2_PACKAGE_LIBEVAS_GL
package/efl/libevas/Config.in:149: symbol BR2_PACKAGE_LIBEVAS_GL is part of choice <choice>
package/efl/libevas/Config.in:144: choice <choice> contains symbol <choice>
package/efl/libevas/Config.in:144: choice <choice> contains symbol BR2_PACKAGE_LIBEVAS_SDL_GL
package/efl/libevas/Config.in:90: symbol BR2_PACKAGE_LIBEVAS_SDL_GL depends on BR2_PACKAGE_SDL_X11
package/sdl/Config.in:24: symbol BR2_PACKAGE_SDL_X11 depends on BR2_PACKAGE_SDL
package/sdl/Config.in:1: symbol BR2_PACKAGE_SDL is selected by BR2_PACKAGE_PYTHON_PYGAME
package/python-pygame/Config.in:1: symbol BR2_PACKAGE_PYTHON_PYGAME depends on BR2_PACKAGE_PYTHON
package/python/Config.in:1: symbol BR2_PACKAGE_PYTHON is selected by BR2_PACKAGE_XBMC

Quoted 6 lines

Until this is properly fixed with the addition of a virtual package for full-openGL providers, just depend on mesa3d instead of selecting it.

Cc Bernd Kuhls <[email protected]>
Cc Thomas Petazzoni <[email protected]>

This should indeed go in quickly!

But shouldn't your series also include a patch that undoes this change?

Regards,
Arnout

Quoted 18 lines
---
 package/efl/libevas/Config.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/efl/libevas/Config.in +1 -1
index 2afa888..8eea23d 100644
@@ -148,7 +148,7 @@ choice
 
 config BR2_PACKAGE_LIBEVAS_GL
 	bool "generic OpenGL"
-	select BR2_PACKAGE_MESA3D
+	depends on BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_LIBEET
 
 config BR2_PACKAGE_LIBEVAS_GLES_SGX
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#3 lore raw

PATCH 1/6 package/libevas: quick fix to get rid of circular deps

On 2014-04-02 08:13 +0200, Arnout Vandecappelle spake thusly:

Quoted 23 lines · Yann E. MORIN
Quoted 22 lines

From: "Yann E. MORIN" <[email protected]>

This is a quick workaround against the recently-introduced circular dependencies hell:

package/xbmc/Config.in:10:error: recursive dependency detected!
package/xbmc/Config.in:10: symbol BR2_PACKAGE_XBMC depends on BR2_PACKAGE_HAS_OPENGL_EGL
package/opengl/libegl/Config.in:1: symbol BR2_PACKAGE_HAS_OPENGL_EGL is selected by BR2_PACKAGE_MESA3D_OPENGL_EGL
package/mesa3d/Config.in:92: symbol BR2_PACKAGE_MESA3D_OPENGL_EGL depends on BR2_PACKAGE_MESA3D
package/mesa3d/Config.in:1: symbol BR2_PACKAGE_MESA3D is selected by BR2_PACKAGE_LIBEVAS_GL
package/efl/libevas/Config.in:149: symbol BR2_PACKAGE_LIBEVAS_GL is part of choice <choice>
package/efl/libevas/Config.in:144: choice <choice> contains symbol <choice>
package/efl/libevas/Config.in:144: choice <choice> contains symbol BR2_PACKAGE_LIBEVAS_SDL_GL
package/efl/libevas/Config.in:90: symbol BR2_PACKAGE_LIBEVAS_SDL_GL depends on BR2_PACKAGE_SDL_X11
package/sdl/Config.in:24: symbol BR2_PACKAGE_SDL_X11 depends on BR2_PACKAGE_SDL
package/sdl/Config.in:1: symbol BR2_PACKAGE_SDL is selected by BR2_PACKAGE_PYTHON_PYGAME
package/python-pygame/Config.in:1: symbol BR2_PACKAGE_PYTHON_PYGAME depends on BR2_PACKAGE_PYTHON
package/python/Config.in:1: symbol BR2_PACKAGE_PYTHON is selected by BR2_PACKAGE_XBMC

Until this is properly fixed with the addition of a virtual package for full-openGL providers, just depend on mesa3d instead of selecting it.

Quoted 7 lines
Quoted 3 lines
Cc Bernd Kuhls <[email protected]>
Cc Thomas Petazzoni <[email protected]>

This should indeed go in quickly!

So I think. Let's wait for Thomas to land in TLS tonight, then we'll poke him on IRC! ;-)

Quoted 1 line

But shouldn't your series also include a patch that undoes this change?

Yes, of course. I realised that after sending. But as I said in the cover-letter, this first patch is important, and the rest was merely to start discusion on the topic.

This series is now entirely deprecated, since we have a better plan (or so I hope) to fix all of this mess. I already have some important patches here, but the series is far from being complete.

Thanks for the review. :-)

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#4 lore raw

PATCH 1/6 package/libevas: quick fix to get rid of circular deps

In reply to Yann E. MORIN

Dear Yann E. MORIN,

Quoted 22 lines · Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

This is a quick workaround against the recently-introduced circular dependencies hell:

package/xbmc/Config.in:10:error: recursive dependency detected!
package/xbmc/Config.in:10: symbol BR2_PACKAGE_XBMC depends on BR2_PACKAGE_HAS_OPENGL_EGL
package/opengl/libegl/Config.in:1: symbol BR2_PACKAGE_HAS_OPENGL_EGL is selected by BR2_PACKAGE_MESA3D_OPENGL_EGL
package/mesa3d/Config.in:92: symbol BR2_PACKAGE_MESA3D_OPENGL_EGL depends on BR2_PACKAGE_MESA3D
package/mesa3d/Config.in:1: symbol BR2_PACKAGE_MESA3D is selected by BR2_PACKAGE_LIBEVAS_GL
package/efl/libevas/Config.in:149: symbol BR2_PACKAGE_LIBEVAS_GL is part of choice <choice>
package/efl/libevas/Config.in:144: choice <choice> contains symbol <choice>
package/efl/libevas/Config.in:144: choice <choice> contains symbol BR2_PACKAGE_LIBEVAS_SDL_GL
package/efl/libevas/Config.in:90: symbol BR2_PACKAGE_LIBEVAS_SDL_GL depends on BR2_PACKAGE_SDL_X11
package/sdl/Config.in:24: symbol BR2_PACKAGE_SDL_X11 depends on BR2_PACKAGE_SDL
package/sdl/Config.in:1: symbol BR2_PACKAGE_SDL is selected by BR2_PACKAGE_PYTHON_PYGAME
package/python-pygame/Config.in:1: symbol BR2_PACKAGE_PYTHON_PYGAME depends on BR2_PACKAGE_PYTHON
package/python/Config.in:1: symbol BR2_PACKAGE_PYTHON is selected by BR2_PACKAGE_XBMC

Until this is properly fixed with the addition of a virtual package for full-openGL providers, just depend on mesa3d instead of selecting it.

Quoted 6 lines
Cc Bernd Kuhls <[email protected]>
Cc Thomas Petazzoni <[email protected]>
---
 package/efl/libevas/Config.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Applied, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#5 lore raw

PATCH 2/6 package/libgl: introduce as a new virtual package for full-openGL providers

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

Currently, on mesa3d is such a full-openGL provider.

But it is easy to see a few more cropping at the door:
- NVidia's binary blob
- ATI's fglrx binary blob

Having this virtual full-openGL package will help when those are getting in.

Cc Bernd Kuhls <[email protected]>
Cc Paul Cercueil <[email protected]>
---
 package/opengl/Config.in       |  1 +
 package/opengl/libgl/Config.in |  6 ++++++
 package/opengl/libgl/libgl.mk  | 16 ++++++++++++++++
 3 files changed, 23 insertions(+)
 create mode 100644 package/opengl/libgl/Config.in
 create mode 100644 package/opengl/libgl/libgl.mk
package/opengl/Config.in +1 -0
index ed81835..20ee28b 100644
@@ -1,3 +1,4 @@
+source "package/opengl/libgl/Config.in"
 source "package/opengl/libegl/Config.in"
 source "package/opengl/libgles/Config.in"
 source "package/opengl/libopenvg/Config.in"
package/opengl/libgl/Config.in new file +6 -0
new file mode 100644
index 0000000..5eb277a
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_HAS_OPENGL
+	bool
+
+config BR2_PACKAGE_PROVIDES_OPENGL
+	depends on BR2_PACKAGE_HAS_OPENGL
+	string
package/opengl/libgl/libgl.mk new file +16 -0
new file mode 100644
index 0000000..cf9daa5
@@ -0,0 +1,16 @@
+################################################################################
+#
+# libgl
+#
+################################################################################
+
+LIBGL_SOURCE =
+LIBGL_DEPENDENCIES = $(call qstrip,$(BR2_PACKAGE_PROVIDES_OPENGL))
+
+ifeq ($(BR2_PACKAGE_HAS_OPENGL),y)
+ifeq ($(LIBGL_DEPENDENCIES),)
+$(error No libGL implementation selected. Configuration error.)
+endif
+endif
+
+$(eval $(generic-package))
Signature · 1 line
1.8.3.2
#6 lore raw

PATCH 3/6 package/mesa3d: is a full-openGL provider if X.org is present

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

In combination with X.org, mesa3d is a full-openGL provider, as long as at least one driver is being built.

Cc Paul Cercueil <[email protected]>
Cc Bernd Kuhls <[email protected]>

---
Thanks to Paul for explaining this on IRC! :-)
In parallel, Bernd posted his patch to the list, which was very similar to this one.

---
 package/mesa3d/Config.in | 4 ++++
 1 file changed, 4 insertions(+)
package/mesa3d/Config.in +4 -0
index 8ed0c07..f3d855b 100644
@@ -34,6 +34,7 @@ comment "DRI drivers need shared libdrm"
 
 config BR2_PACKAGE_MESA3D_DRIVER
 	bool
+	select BR2_PACKAGE_HAS_OPENGL
 
 menu "Drivers"
 
@@ -106,6 +107,9 @@ config BR2_PACKAGE_MESA3D_OPENGL_ES
 
 endmenu
 
+config BR2_PACKAGE_PROVIDES_OPENGL
+	default "mesa3d" if BR2_PACKAGE_MESA3D_DRIVER
+
 config BR2_PACKAGE_PROVIDES_OPENGL_EGL
 	default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_EGL
 
Signature · 1 line
1.8.3.2
#7 lore raw

PATCH 3/6 package/mesa3d: is a full-openGL provider if X.org is present

Hi Yann,

I don't see the "if X.org is present" part in your patch, what would prevent me from trying to enable OpenGL on a X11-less system?

You make BR2_PACKAGE_MESA3D_DRIVER select BR2_PACKAGE_HAS_OPENGL but that is wrong. Typically a X11-less system will enable a Gallium driver, while Mesa's OpenGL requires a DRI driver (hence the dependency on X11).

What I suggest is to select BR2_PACKAGE_HAS_OPENGL only from BR2_PACKAGE_MESA3D_DRI_DRIVER, and make BR2_PACKAGE_MESA3D_DRI_DRIVER available only if X11 is enabled, since it makes no sense building X11-only drivers in that case.

Also, the original Config.in has options to enable EGL/GLES, having an option to toggle OpenGL would be nice too, I think (and OpenVG, but that's a separate issue).

Bye,
Paul

Quoted 40 lines · Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

In combination with X.org, mesa3d is a full-openGL provider, as long as at least one driver is being built.

Cc Paul Cercueil <[email protected]>
Cc Bernd Kuhls <[email protected]>

---
Thanks to Paul for explaining this on IRC! :-)
In parallel, Bernd posted his patch to the list, which was very similar to this one.

---
  package/mesa3d/Config.in | 4 ++++
  1 file changed, 4 insertions(+)
package/mesa3d/Config.in +4 -0
index 8ed0c07..f3d855b 100644
@@ -34,6 +34,7 @@ comment "DRI drivers need shared libdrm"
 
  config BR2_PACKAGE_MESA3D_DRIVER
  	bool
+	select BR2_PACKAGE_HAS_OPENGL
 
  menu "Drivers"
 
@@ -106,6 +107,9 @@ config BR2_PACKAGE_MESA3D_OPENGL_ES
 
  endmenu
 
+config BR2_PACKAGE_PROVIDES_OPENGL
+	default "mesa3d" if BR2_PACKAGE_MESA3D_DRIVER
+
  config BR2_PACKAGE_PROVIDES_OPENGL_EGL
  	default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_EGL
 
#8 lore raw

PATCH 3/6 package/mesa3d: is a full-openGL provider if X.org is present

Paul, All,

On 2014-04-01 09:48 +0200, Paul Cercueil spake thusly:

Quoted 2 lines

I don't see the "if X.org is present" part in your patch, what would prevent me from trying to enable OpenGL on a X11-less system?

Right, the commit log does not really match the changeset.

Quoted 3 lines

You make BR2_PACKAGE_MESA3D_DRIVER select BR2_PACKAGE_HAS_OPENGL but that is wrong. Typically a X11-less system will enable a Gallium driver, while Mesa's OpenGL requires a DRI driver (hence the dependency on X11).

This is the same change Bernd did in his patch. I initially did:

config BR2_PACKAGE_MESA3D
bool "mesa3d"
select BR2_PACKAGE_HAS_OPENGL if BR2_PACKAGE_XORG7

if BR2_PACKAGE_MESA3D

config BR2_PACKAGE_PROVIDES_OPENGL
default "mesa3d" if BR2_PACKAGE_XORG7

endif

(only quoting the relevant parts)

But as Bernd (who seems much more knowledgeable than I in mesa3d) made than depend on BR2_PACKAGE_MESA3D_DRIVER, I eventually did the same.

Quoted 4 lines

What I suggest is to select BR2_PACKAGE_HAS_OPENGL only from BR2_PACKAGE_MESA3D_DRI_DRIVER, and make BR2_PACKAGE_MESA3D_DRI_DRIVER available only if X11 is enabled, since it makes no sense building X11-only drivers in that case.

But MESA3D_DRI_DRIVE is a blind option that is selected by the various Gallium or DRI drivers.

Of those drivers, only the i965 DRI driver depends on XORG7, the other DRI drivers, as well as the Gallium drivers, do not depend on XORG7.

Here are all the drivers:
nouveau (Gallium)
vmware (Gallium)
swrast (Gallium)
swrast (DRI)
i965 (DRI) depends on XORG7
radeon (DRI)

So, taking your comment into account, only the i965 should provide full-openGL, since it's the only one that guarantees X.org is present.

However, are the others missing a dependency on XORG7? Is it possible (and meaningful) to build the nouveau Gallium driver without X.org? The radeon driver? ...

I have to admit I am a bit lost in all this mess... :-(

So, here is basically what I propose for now:

- move the select _HAS_OPENGL to BR2_PACKAGE_MESA3D_DRI_DRIVER
- do the select only if XORG7 is selected
- add missing dependencies on XORG7 based on your feedback on the above question.

BTW, there is a bug in the way BR2_PACKAGE_MESA3D_DRI_DRIVER is defined:

config BR2_PACKAGE_MESA3D_DRI_DRIVER
select BR2_PACKAGE_MESA3D_DRIVER
depends on !BR2_PREFER_STATIC_LIB
bool

None of the symbols that select BR2_PACKAGE_MESA3D_DRI_DRIVER do depend on !BR2_PREFER_STATIC_LIB, so we can end-up in an unmet-dependency hell.

Basically, adding a 'depends on' to a no-prompt symbol is just wrong.

I'll fix that in my series.

Quoted 2 lines

Also, the original Config.in has options to enable EGL/GLES, having an option to toggle OpenGL would be nice too, I think

Well, we can add such an option in a follow-up patch; I do not like to mix fixes and enhancements in the same patch.

Quoted 2 lines

(and OpenVG, but that's a
separate issue).

Ditto, it can be in a follow-up patch.

Thank you for the review! :-)

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#9 lore raw

PATCH 3/6 package/mesa3d: is a full-openGL provider if X.org is present

Hi,

Comments embedded.

Quoted 46 lines · Yann E. MORIN

Paul, All,

On 2014-04-01 09:48 +0200, Paul Cercueil spake thusly:

Quoted 2 lines

I don't see the "if X.org is present" part in your patch, what would prevent me from trying to enable OpenGL on a X11-less system?

Right, the commit log does not really match the changeset.

Quoted 3 lines

You make BR2_PACKAGE_MESA3D_DRIVER select BR2_PACKAGE_HAS_OPENGL but that is wrong. Typically a X11-less system will enable a Gallium driver, while Mesa's OpenGL requires a DRI driver (hence the dependency on X11).

This is the same change Bernd did in his patch. I initially did:

config BR2_PACKAGE_MESA3D
bool "mesa3d"
select BR2_PACKAGE_HAS_OPENGL if BR2_PACKAGE_XORG7

if BR2_PACKAGE_MESA3D

config BR2_PACKAGE_PROVIDES_OPENGL
default "mesa3d" if BR2_PACKAGE_XORG7

endif

(only quoting the relevant parts)

But as Bernd (who seems much more knowledgeable than I in mesa3d) made than depend on BR2_PACKAGE_MESA3D_DRIVER, I eventually did the same.

Quoted 4 lines

What I suggest is to select BR2_PACKAGE_HAS_OPENGL only from BR2_PACKAGE_MESA3D_DRI_DRIVER, and make BR2_PACKAGE_MESA3D_DRI_DRIVER available only if X11 is enabled, since it makes no sense building X11-only drivers in that case.

But MESA3D_DRI_DRIVE is a blind option that is selected by the various Gallium or DRI drivers.

Of those drivers, only the i965 DRI driver depends on XORG7, the other DRI drivers, as well as the Gallium drivers, do not depend on XORG7.

Here are all the drivers:
nouveau (Gallium)
vmware (Gallium)
swrast (Gallium)
swrast (DRI)
i965 (DRI) depends on XORG7
radeon (DRI)

Quoted 8 lines

So, taking your comment into account, only the i965 should provide full-openGL, since it's the only one that guarantees X.org is present.

However, are the others missing a dependency on XORG7? Is it possible (and meaningful) to build the nouveau Gallium driver without X.org? The radeon driver? ...

I have to admit I am a bit lost in all this mess... :-(

It works like this: regular OpenGL only works with DRI drivers, and DRI drivers are only usable under X11.
Which means that all DRI drivers should depend on XORG7 (even the swrast one), and they should all select OpenGL.

Gallium drivers are meant to be used with EGL and OpenGL ES, and only some of them can be used under X11 using a DRI compatibility layer (for instance, "nouveau" in Mesa is both a Gallium and a DRI driver). But they should also all work fine without X11, and will support Wayland, which is not the case for DRI drivers.

Quoted 37 lines

So, here is basically what I propose for now:

- move the select _HAS_OPENGL to BR2_PACKAGE_MESA3D_DRI_DRIVER
- do the select only if XORG7 is selected
- add missing dependencies on XORG7 based on your feedback on the above question.

BTW, there is a bug in the way BR2_PACKAGE_MESA3D_DRI_DRIVER is defined:

config BR2_PACKAGE_MESA3D_DRI_DRIVER
select BR2_PACKAGE_MESA3D_DRIVER
depends on !BR2_PREFER_STATIC_LIB
bool

None of the symbols that select BR2_PACKAGE_MESA3D_DRI_DRIVER do depend on !BR2_PREFER_STATIC_LIB, so we can end-up in an unmet-dependency hell.

Basically, adding a 'depends on' to a no-prompt symbol is just wrong.

I'll fix that in my series.

Quoted 2 lines

Also, the original Config.in has options to enable EGL/GLES, having an option to toggle OpenGL would be nice too, I think

Well, we can add such an option in a follow-up patch; I do not like to mix fixes and enhancements in the same patch.

Quoted 2 lines

(and OpenVG, but that's a
separate issue).

Ditto, it can be in a follow-up patch.

Thank you for the review! :-)

Regards,
Yann E. MORIN.

#10 lore raw

PATCH 3/6 package/mesa3d: is a full-openGL provider if X.org is present

Paul, All,

On 2014-04-01 22:14 +0200, Paul Cercueil spake thusly:

Quoted 8 lines · Yann E. MORIN
Quoted 1 line

I have to admit I am a bit lost in all this mess... :-(

It works like this: regular OpenGL only works with DRI drivers, and DRI drivers are only usable under X11.
Which means that all DRI drivers should depend on XORG7 (even the swrast one), and they should all select OpenGL.

Quoted 5 lines

Gallium drivers are meant to be used with EGL and OpenGL ES, and only some of them can be used under X11 using a DRI compatibility layer (for instance, "nouveau" in Mesa is both a Gallium and a DRI driver). But they should also all work fine without X11, and will support Wayland, which is not the case for DRI drivers.

OK, you managed to confuse me yet a bit more! :-)

So, to sum-up our discussion on IRC, so everyone can follow:

- mesa3d has two types of drivers: Gallium drivers, and DRI drivers

- Gallium drivers provide EGL and GLES

- DRI drivers provide full-openGL, and also EGL and GLES

- for a specific chip, there are two drivers: one Gallium and one DRI

- some drivers have a DRI wrapper over a Gallium driver, wrapper that provides DRI via the Gallium driver

- X11 needs a DRI driver

- Gallium are used for non-X11 display (eg. directfb, a wayland

    compositor...)

Is the above a proper summary of what you explained me on IRC?

I'll wait for your reply before I lay out my proposal for fixing mesa3d support in Buildroot, because if any of the above is wrong, my prioposal would be wrong.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#11 lore raw

PATCH 4/6 package/vlc: depends on the virtual package libgl

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

Currently, vlc depends on mesa3d to provide the openGL support.

We now have a virtual package, libgl, which ensures openGL is available.

---
 package/vlc/vlc.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
package/vlc/vlc.mk +2 -2
index a9ee620..f78f209 100644
@@ -118,9 +118,9 @@ else
 VLC_CONF_OPT += --disable-flac
 endif
 
-ifeq ($(BR2_PACKAGE_MESA3D),y)
+ifeq ($(BR2_PACKAGE_HAS_OPENGL),y)
 VLC_CONF_OPT += --enable-glx
-VLC_DEPENDENCIES += mesa3d
+VLC_DEPENDENCIES += libgl
 else
 VLC_CONF_OPT += --disable-glx
 endif
Signature · 1 line
1.8.3.2
#12 lore raw

PATCH 4/6 package/vlc: depends on the virtual package libgl

Quoted 17 lines · Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

Currently, vlc depends on mesa3d to provide the openGL support.

We now have a virtual package, libgl, which ensures openGL is available.

---
 package/vlc/vlc.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
package/vlc/vlc.mk +0 -0
index a9ee620..f78f209 100644

package/vlc/vlc.mk else · line 122

Quoted 6 lines
package/vlc/vlc.mk +1 -1
@@ -118,9 +118,9 @@ else
 VLC_CONF_OPT += --disable-flac
 endif
 
-ifeq ($(BR2_PACKAGE_MESA3D),y)
+ifeq ($(BR2_PACKAGE_HAS_OPENGL),y)
 VLC_CONF_OPT += --enable-glx

Since the option is called enable-glx, it sounds as if it should depend
on X as well (I don't think wayland has glx, right?)

Regards,
Arnout

Quoted 6 lines
package/vlc/vlc.mk +1 -1
-VLC_DEPENDENCIES += mesa3d
+VLC_DEPENDENCIES += libgl
 else
 VLC_CONF_OPT += --disable-glx
 endif
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#13 lore raw

PATCH 4/6 package/vlc: depends on the virtual package libgl

Arnout, All,

On 2014-04-02 08:19 +0200, Arnout Vandecappelle spake thusly:

Quoted 21 lines · Yann E. MORIN
Quoted 20 lines

From: "Yann E. MORIN" <[email protected]>

Currently, vlc depends on mesa3d to provide the openGL support.

We now have a virtual package, libgl, which ensures openGL is available.

---
 package/vlc/vlc.mk | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
package/vlc/vlc.mk +0 -0
index a9ee620..f78f209 100644
@@ -118,9 +118,9 @@ else
 VLC_CONF_OPT += --disable-flac
 endif
 
Quoted 6 lines

package/vlc/vlc.mk else · line 122

Quoted 3 lines
package/vlc/vlc.mk +1 -1
-ifeq ($(BR2_PACKAGE_MESA3D),y)
+ifeq ($(BR2_PACKAGE_HAS_OPENGL),y)
 VLC_CONF_OPT += --enable-glx

Since the option is called enable-glx, it sounds as if it should depend
on X as well (I don't think wayland has glx, right?)

Well, full-openGL is only possible with X11 anyway, so BR2_PACKAGE_HAS_OPENGL will itself not be set when X.org is not selected as well.

So, I think we can just depend on BR2_PACKAGE_HAS_OPENGL for this option.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#14 lore raw

PATCH 4/6 package/vlc: depends on the virtual package libgl

Quoted 5 lines · Yann E. MORIN

Arnout, All,

On 2014-04-02 08:19 +0200, Arnout Vandecappelle spake thusly:

Quoted 2 lines · Yann E. MORIN
Quoted 1 line

From: "Yann E. MORIN" <[email protected]>

[snip]

Quoted 9 lines
Quoted 6 lines

package/vlc/vlc.mk else · line 122

Quoted 3 lines
package/vlc/vlc.mk +1 -1
-ifeq ($(BR2_PACKAGE_MESA3D),y)
+ifeq ($(BR2_PACKAGE_HAS_OPENGL),y)
 VLC_CONF_OPT += --enable-glx

Since the option is called enable-glx, it sounds as if it should depend
on X as well (I don't think wayland has glx, right?)

Well, full-openGL is only possible with X11 anyway, so BR2_PACKAGE_HAS_OPENGL will itself not be set when X.org is not selected as well.

So wayland doesn't support full-GL? Or maybe wayland also supports glx?

Regards,
Arnout

Quoted 7 lines

So, I think we can just depend on BR2_PACKAGE_HAS_OPENGL for this option.

Regards,
Yann E. MORIN.

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#15 lore raw

PATCH 4/6 package/vlc: depends on the virtual package libgl

Arnout, All,

On 2014-04-03 08:18 +0200, Arnout Vandecappelle spake thusly:

Quoted 14 lines · Yann E. MORIN
Quoted 5 lines

Arnout, All,

On 2014-04-02 08:19 +0200, Arnout Vandecappelle spake thusly:

Quoted 2 lines · Yann E. MORIN
Quoted 1 line

From: "Yann E. MORIN" <[email protected]>

[snip]

Quoted 7 lines
Quoted 6 lines

package/vlc/vlc.mk else · line 122

Quoted 3 lines
package/vlc/vlc.mk +1 -1
-ifeq ($(BR2_PACKAGE_MESA3D),y)
+ifeq ($(BR2_PACKAGE_HAS_OPENGL),y)
 VLC_CONF_OPT += --enable-glx

Since the option is called enable-glx, it sounds as if it should depend
on X as well (I don't think wayland has glx, right?)

Quoted 4 lines
Quoted 2 lines

Well, full-openGL is only possible with X11 anyway, so BR2_PACKAGE_HAS_OPENGL will itself not be set when X.org is not selected as well.

So wayland doesn't support full-GL? Or maybe wayland also supports glx?

It is my understanding that Wayland only "supports" EGL and GLES2.

But Wayland itself is but a protocol. What matter are the compositor (the server) and the applications (the clients).

I am not that knowledgeable in the subject, but from what I understand:

- a Wayland compositor only needs EGL (plus a wayland-specific extension that is slowly trickling-down to any known-so-far EGL implementations.)

- as for what a Wayland application may use, I guess it is also limited to only doing EGL calls, not full OpenGL either.

Here is a nice, short and concise description of Wayland to which I refer you:
http://wayland.freedesktop.org/architecture.html

It is only speaking of EGL/GLES2:

---8<---
Typically, hardware enabling includes modesetting/display and EGL/GLES2. On top of that, Wayland needs a way to share buffers efficiently between processes. There are two sides to that, the client side and the server side.

On the client side we've defined a Wayland EGL platform. In the EGL model, that consists of the native types (EGLNativeDisplayType, EGLNativeWindowType and EGLNativePixmapType) and a way to create those types. In other words, it's the glue code that binds the EGL stack and its buffer sharing mechanism to the generic Wayland API. The EGL stack is expected to provide an implementation of the Wayland EGL platform. [...]

The server side of Wayland is the compositor and core UX for the vertical, typically integrating task switcher, app launcher, lock screen in one monolithic application. The server runs on top of a modesetting API (kernel modesetting, OpenWF Display or similar) and composites the final UI using a mix of EGL/GLES2 compositor and hardware overlays if available. Enabling modesetting, EGL/GLES2 and overlays is something that should be part of standard hardware bringup. The extra requirement for Wayland enabling is the EGL_WL_bind_wayland_display extension that lets the compositor create an EGLImage from a generic Wayland shared buffer. [...]
---8<---

So, no. No full OpenGL with Wayland.

Someone more knowledgeable than I will easily prove me wrong, however.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#16 lore raw

PATCH 5/6 package/x11-video-drivers: do not select, but depends on mesa3d

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

mesa3d is now a full-openGL provider for the virtual package libgl.

It is currently the only provider, but we can safely envision more providers to be added later: NVidia's binary blob, ATI's fglrx binary blob... So, forcibly selecting mesa3d would come clashing with other full-openGL providers.

Also, since mesa3d has implementations for different chips, selecting mesa3d is not enough. There would still be the need to select the required galium driver.

So, just transform all instances of 'select mesa3d' to 'depends on mesa3d'.

To be noted: xf86-video-mach64 already used a 'depends on' rather than a 'select'.

At the same time, move the intel drivers dependencies to the top.

Cc Bernd Kuhls <[email protected]>
Cc Paul Cercueil <[email protected]>
---
 package/x11r7/xdriver_xf86-video-ati/Config.in        | 5 ++++-
 package/x11r7/xdriver_xf86-video-glint/Config.in      | 5 ++++-
 package/x11r7/xdriver_xf86-video-intel/Config.in      | 7 +++++--
 package/x11r7/xdriver_xf86-video-mach64/Config.in     | 3 +++
 package/x11r7/xdriver_xf86-video-mga/Config.in        | 5 ++++-
 package/x11r7/xdriver_xf86-video-openchrome/Config.in | 5 ++++-
 package/x11r7/xdriver_xf86-video-r128/Config.in       | 5 ++++-
 package/x11r7/xdriver_xf86-video-savage/Config.in     | 5 ++++-
 package/x11r7/xdriver_xf86-video-sis/Config.in        | 5 ++++-
 package/x11r7/xdriver_xf86-video-tdfx/Config.in       | 5 ++++-
 package/x11r7/xdriver_xf86-video-vmware/Config.in     | 5 ++++-
 11 files changed, 44 insertions(+), 11 deletions(-)
package/x11r7/xdriver_xf86-video-ati/Config.in +4 -1
index 3c0cac3..3beee68 100644
@@ -1,8 +1,8 @@
 config BR2_PACKAGE_XDRIVER_XF86_VIDEO_ATI
 	bool "xf86-video-ati"
+	depends on BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_LIBDRM
 	select BR2_PACKAGE_LIBDRM_RADEON
-	select BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_XPROTO_FONTSPROTO
 	select BR2_PACKAGE_XPROTO_GLPROTO
 	select BR2_PACKAGE_XPROTO_RANDRPROTO
@@ -13,3 +13,6 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_ATI
 	select BR2_PACKAGE_XPROTO_XPROTO
 	help
 	  ATI video driver
+
+comment "xf86-video-ati needs mesa3d"
+	depends on !BR2_PACKAGE_MESA3D
package/x11r7/xdriver_xf86-video-glint/Config.in +4 -1
index bd92788..acae30b 100644
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_XDRIVER_XF86_VIDEO_GLINT
 	bool "xf86-video-glint"
+	depends on BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_LIBDRM
-	select BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_XPROTO_FONTSPROTO
 	select BR2_PACKAGE_XPROTO_GLPROTO
 	select BR2_PACKAGE_XPROTO_RANDRPROTO
@@ -13,3 +13,6 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_GLINT
 	select BR2_PACKAGE_XPROTO_XPROTO
 	help
 	  GLINT/Permedia video driver
+
+comment "xf86-video-glint needs mesa3d"
+	depends on !BR2_PACKAGE_MESA3D
package/x11r7/xdriver_xf86-video-intel/Config.in +5 -2
index 83b714a..8781e1c 100644
@@ -1,5 +1,7 @@
 config BR2_PACKAGE_XDRIVER_XF86_VIDEO_INTEL
 	bool "xf86-video-intel"
+	depends on (BR2_i386 || BR2_x86_64)
+	depends on BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_XPROTO_FONTSPROTO
 	select BR2_PACKAGE_XPROTO_RANDRPROTO
 	select BR2_PACKAGE_XPROTO_RENDERPROTO
@@ -7,7 +9,8 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_INTEL
 	select BR2_PACKAGE_XLIB_LIBPCIACCESS
 	select BR2_PACKAGE_LIBDRM
 	select BR2_PACKAGE_LIBDRM_INTEL
-	select BR2_PACKAGE_MESA3D
-	depends on (BR2_i386 || BR2_x86_64)
 	help
 	  Intel video driver
+
+comment "xf86-video-intel needs mesa3d"
+	depends on BR2_PACKAGE_MESA3D
package/x11r7/xdriver_xf86-video-mach64/Config.in +3 -0
index 674071c..42535e4 100644
@@ -9,3 +9,6 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_MACH64
 	select BR2_PACKAGE_XPROTO_XPROTO
 	help
 	  mach64 video driver
+
+comment "xf86-video-mach64 needs mesa3d"
+	depends on !BR2_PACKAGE_MESA3D
package/x11r7/xdriver_xf86-video-mga/Config.in +4 -1
index 2fc3837..a504ec0 100644
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_XDRIVER_XF86_VIDEO_MGA
 	bool "xf86-video-mga"
+	depends on BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_LIBDRM
-	select BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_XPROTO_FONTSPROTO
 	select BR2_PACKAGE_XPROTO_GLPROTO
 	select BR2_PACKAGE_XPROTO_RANDRPROTO
@@ -12,3 +12,6 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_MGA
 	select BR2_PACKAGE_XPROTO_XPROTO
 	help
 	  Matrox video driver
+
+comment "xf86-video-mga needs mesa3d"
+	depends on !BR2_PACKAGE_MESA3D
package/x11r7/xdriver_xf86-video-openchrome/Config.in +4 -1
index 24b74bc..db27eef 100644
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_XDRIVER_XF86_VIDEO_OPENCHROME
 	bool "xf86-video-openchrome"
+	depends on BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_LIBDRM
-	select BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_XLIB_LIBX11
 	select BR2_PACKAGE_XLIB_LIBXCOMPOSITE
 	select BR2_PACKAGE_XLIB_LIBXVMC
@@ -14,3 +14,6 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_OPENCHROME
 	help
 	  Openchrome, A free and Open Source video driver for the VIA/S3G
 	  UniChrome and UniChrome Pro graphics chipsets.
+
+comment "xf86-video-openchrome needs mesa3d"
+	depends on !BR2_PACKAGE_MESA3D
package/x11r7/xdriver_xf86-video-r128/Config.in +4 -1
index 07e3142..647156f 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_XDRIVER_XF86_VIDEO_R128
 	bool "xf86-video-r128"
-	select BR2_PACKAGE_MESA3D
+	depends on BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_XPROTO_FONTSPROTO
 	select BR2_PACKAGE_XPROTO_RANDRPROTO
 	select BR2_PACKAGE_XPROTO_RENDERPROTO
@@ -8,3 +8,6 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_R128
 	select BR2_PACKAGE_XPROTO_XPROTO
 	help
 	  R128 video driver
+
+comment "xf86-video-r128 needs mesa3d"
+	depends on !BR2_PACKAGE_MESA3D
package/x11r7/xdriver_xf86-video-savage/Config.in +4 -1
index 93a731e..77dde87 100644
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_XDRIVER_XF86_VIDEO_SAVAGE
 	bool "xf86-video-savage"
+	depends on BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_LIBDRM
-	select BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_XPROTO_FONTSPROTO
 	select BR2_PACKAGE_XPROTO_RANDRPROTO
 	select BR2_PACKAGE_XPROTO_RENDERPROTO
@@ -11,3 +11,6 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_SAVAGE
 	select BR2_PACKAGE_XPROTO_XPROTO
 	help
 	  S3 Savage video driver
+
+comment "xf86-video-savage needs mesa3d"
+	depends on !BR2_PACKAGE_MESA3D
package/x11r7/xdriver_xf86-video-sis/Config.in +4 -1
index e184505..3c86bd4 100644
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_XDRIVER_XF86_VIDEO_SIS
 	bool "xf86-video-sis"
+	depends on BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_LIBDRM
-	select BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_XPROTO_FONTSPROTO
 	select BR2_PACKAGE_XPROTO_RANDRPROTO
 	select BR2_PACKAGE_XPROTO_RENDERPROTO
@@ -13,3 +13,6 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_SIS
 	select BR2_PACKAGE_XPROTO_XPROTO
 	help
 	  SiS and XGI video driver
+
+comment "xf86-video-sis needs mesa3d"
+	depends on !BR2_PACKAGE_MESA3D
package/x11r7/xdriver_xf86-video-tdfx/Config.in +4 -1
index 811eba2..96a69ba 100644
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_XDRIVER_XF86_VIDEO_TDFX
 	bool "xf86-video-tdfx"
+	depends on BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_LIBDRM
-	select BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_XPROTO_FONTSPROTO
 	select BR2_PACKAGE_XPROTO_RANDRPROTO
 	select BR2_PACKAGE_XPROTO_RENDERPROTO
@@ -11,3 +11,6 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_TDFX
 	select BR2_PACKAGE_XPROTO_XPROTO
 	help
 	  3Dfx video driver
+
+comment "xf86-video-tdfx needs mesa3d"
+	depends on !BR2_PACKAGE_MESA3D
package/x11r7/xdriver_xf86-video-vmware/Config.in +4 -1
index a4d2052..2e6b24d 100644
@@ -1,6 +1,6 @@
 config BR2_PACKAGE_XDRIVER_XF86_VIDEO_VMWARE
 	bool "xf86-video-vmware"
-	select BR2_PACKAGE_MESA3D
+	depends on BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SVGA
 	select BR2_PACKAGE_XPROTO_FONTSPROTO
 	select BR2_PACKAGE_XPROTO_RANDRPROTO
@@ -10,3 +10,6 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_VMWARE
 	select BR2_PACKAGE_XPROTO_XPROTO
 	help
 	  VMware SVGA video driver
+
+comment "xf86-video-vmware needs mesa3d"
+	depends on !BR2_PACKAGE_MESA3D
Signature · 1 line
1.8.3.2
#17 lore raw

PATCH 5/6 package/x11-video-drivers: do not select, but depends on mesa3d

Hi,

"Yann E. MORIN" <[email protected]> wrote in news:887ad694204dc2032ade7bdacb8e9d9aa48205ac.1396302677.git.yann.morin.199 8 at free.fr:

Quoted 2 lines

a/package/x11r7/xdriver_xf86-video-intel/Config.in +++ b/package/x11r7/xdriver_xf86-video-intel/Config.in @@ -1,5 +1,7 @@

[...]

package/x11r7/xdriver_xf86-video-intel/Config.in config BR2_PACKAGE_XDRIVER_XF86_VIDEO_INTEL · line 16

Quoted 2 lines
package/x11r7/xdriver_xf86-video-intel/Config.in +2 -0
+comment "xf86-video-intel needs mesa3d"
+     depends on BR2_PACKAGE_MESA3D

"depends on !BR2_PACKAGE_MESA3D"

Regards, Bernd

#18 lore raw

PATCH 5/6 package/x11-video-drivers: do not select, but depends on mesa3d

Bernd, All,

On 2014-04-02 22:01 +0200, Bernd Kuhls spake thusly:

Quoted 9 lines

Hi,

"Yann E. MORIN" <[email protected]> wrote in news:887ad694204dc2032ade7bdacb8e9d9aa48205ac.1396302677.git.yann.morin.199 8 at free.fr:

Quoted 2 lines

a/package/x11r7/xdriver_xf86-video-intel/Config.in +++ b/package/x11r7/xdriver_xf86-video-intel/Config.in @@ -1,5 +1,7 @@

Quoted 6 lines

[...]

package/x11r7/xdriver_xf86-video-intel/Config.in config BR2_PACKAGE_XDRIVER_XF86_VIDEO_INTEL · line 16

Quoted 2 lines
package/x11r7/xdriver_xf86-video-intel/Config.in +2 -0
+comment "xf86-video-intel needs mesa3d"
+     depends on BR2_PACKAGE_MESA3D

"depends on !BR2_PACKAGE_MESA3D"

Good catch! Thanks!

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#19 lore raw

PATCH 6/6 package/xorg-server: do not force-select xf86driproto for mesa3d

In reply to Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

This is already handled by mesa3d itself.

---
 package/x11r7/xserver_xorg-server/Config.in | 1 -
 1 file changed, 1 deletion(-)
package/x11r7/xserver_xorg-server/Config.in +0 -1
index dfa7d10..e191dce 100644
@@ -45,7 +45,6 @@ config BR2_PACKAGE_XSERVER_XORG_SERVER
 	select BR2_PACKAGE_XPROTO_XEXTPROTO
 	select BR2_PACKAGE_XPROTO_XF86BIGFONTPROTO
 	select BR2_PACKAGE_XPROTO_XF86DGAPROTO
-	select BR2_PACKAGE_XPROTO_XF86DRIPROTO if BR2_PACKAGE_MESA3D
 	select BR2_PACKAGE_XPROTO_XF86VIDMODEPROTO
 	select BR2_PACKAGE_XPROTO_XPROTO
 	select BR2_PACKAGE_XUTIL_UTIL_MACROS
Signature · 1 line
1.8.3.2
#20 lore raw

cover Add virtual package for full-openGL (branch yem/fixes)

In reply to Yann E. MORIN

Yann E., Bernd,

Quoted 5 lines · Yann E. MORIN

From: "Yann E. MORIN" <[email protected]>

Hello All!

This series introduces a virtual package for full-openGL providers.

Thanks for your work on this. I am using it to add support for CoGL/Clutter to Buildroot (wraps opengl, gles, egl, with/without x11/wayland). Now I can build it for Qemu/x86 and Raspberry :-)

Best regards,
ELB

(https://github.com/elebihan/buildroot/tree/clutter-support)

#21 lore raw

cover Add virtual package for full-openGL (branch yem/fixes)

In reply to Yann E. MORIN

On 2014-03-31 23:59 +0200, Yann E. MORIN spake thusly:

Quoted 3 lines

Hello All!

This series introduces a virtual package for full-openGL providers.

Please disregard this series.

I'm doing a more complete one based on input from Paul.

Bernd, I'll have a look at your GLEW/GLU series and see if it is possible to merge mine in yours.

Regards,
Yann E. MORIN.

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