Add virtual package for full-openGL (branch yem/opengl)
v2 cover Add virtual package for full-openGL (branch yem/opengl)
From: "Yann E. MORIN" <[email protected]>
Hello All!
This series introduces a virtual package for full-openGL providers.
This is still an RFC, for now. I'm posting it to get earlt feedback on whether this is a correct approach, or if I am completely off my shoes.
Changes v1 -> v2:
- almost complete rewrite after comments by Paul and Bernd
Regards,
Yann E. MORIN.
The following changes since commit 5729ae52d4bfcc7d02da33359971623d65fd8989:
eudev : bump version to 1.5.3 (2014-04-04 23:47:36 +0200)
are available in the git repository at:
git://gitorious.org/buildroot/buildroot.git yem/opengl
for you to fetch changes up to 55d8bed0fa397c30345e1ba8318eeeb76fac7a3a:
package/vlc: depends on the virtual package libgl (2014-04-05 14:06:39 +0200)
----------------------------------------------------------------
Yann E. MORIN (13):
package/xdriver_xf86-video-ati: depends on x86 package/x11-video-drivers: do not select, but depends on mesa3d package/mesa3d: fix improper dependency of blind option package/mesa3d: re-arrange menu items
package/mesa3d: DRI drivers depend on X.org
package/mesa3d: add comment for when OpenGL EGL is not available package/mesa3d: simplify the code enabling full-OpenGL package/mesa3d: only enable full OpenGL when a DRI driver is enabled package/xorg-server: do not force-select xf86driproto for mesa3d package/libgl: introduce as a new virtual package for full-openGL providers package/mesa3d: with a DRI driver, is a full OpenGL provider package/libevas: switch dependency from mesa3d to _HAS_OPENGL package/vlc: depends on the virtual package libgl
package/efl/libevas/Config.in | 2 +- package/mesa3d/Config.in | 34 ++++++++++++++-------- package/mesa3d/mesa3d.mk | 18 +++++------- 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 | 6 +++- 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 +++- .../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 - 19 files changed, 101 insertions(+), 37 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. | '------------------------------^-------^------------------^--------------------'
PATCH v2 1/13 package/xdriver_xf86-video-ati: depends on x86
From: "Yann E. MORIN" <[email protected]>
xdriver_xf86-video-ati selects BR2_PACKAGE_LIBDRM_RADEON which depends on x86.
This can generate "unmet direct dependencies" warnings.
Propagate the dependency from BR2_PACKAGE_LIBDRM_RADEON.
--- package/x11r7/xdriver_xf86-video-ati/Config.in | 1 + 1 file changed, 1 insertion(+)
package/x11r7/xdriver_xf86-video-ati/Config.in +1 -0
@@ -1,5 +1,6 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_ATI bool "xf86-video-ati" + depends on BR2_i386 || BR2_x86_64 # libdrm-radeon select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_LIBDRM_RADEON select BR2_PACKAGE_MESA3D
Signature · 1 line
1.8.3.2
PATCH 1/13 package/xdriver_xf86-video-ati: depends on x86
Dear Yann E. MORIN,
Quoted 19 lines · Yann E. MORIN
From: "Yann E. MORIN" <[email protected]>
xdriver_xf86-video-ati selects
BR2_PACKAGE_LIBDRM_RADEONwhich depends on x86.This can generate "unmet direct dependencies" warnings.
Propagate the dependency from
BR2_PACKAGE_LIBDRM_RADEON.Signed-off-by "Yann E. MORIN" <[email protected]>--- package/x11r7/xdriver_xf86-video-ati/Config.in | 1 + 1 file changed, 1 insertion(+)package/x11r7/xdriver_xf86-video-ati/Config.in +0
-0
package/x11r7/xdriver_xf86-video-ati/Config.in line 6
Quoted 6 lines
package/x11r7/xdriver_xf86-video-ati/Config.in +1
-0@@ -1,5 +1,6 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_ATI bool "xf86-video-ati" + depends on BR2_i386 || BR2_x86_64 # libdrm-radeon select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_LIBDRM_RADEON select BR2_PACKAGE_MESA3D
Technically speaking, libdrm is not a mandatory dependency for the ATI driver. It seems to only be mandatory if you want to enable DRI support.
Moreover, the fact that libdrm-radeon is only available on x86 and x86-64 is wrong. It might have been the case back when it had a dependency on libpciaccess, but it's no longer the case, and I've just
tested: one can build libdrm-radeon for ARM without any problem:
$ file output/target/usr/lib/libdrm_radeon.so.1.0.1 output/target/usr/lib/libdrm_radeon.so.1.0.1: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, stripped
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v2 2/13 package/x11-video-drivers: do not select, but depends on mesa3d
In reply to Yann E. MORINFrom: "Yann E. MORIN" <[email protected]>
Currently, X.Org drivers that need mesa3d forcibly select it.
We'll soon switch mesa3d to being a provider of the full OpenGL virtual package, to come in a later patch.
It is bad practice to select a provider, as it can generate configuration inconsistencies.
So, switch all X.Org video driver that need mesa3d to actually depend on it, rather than forcibly select it.
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.
--- 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
@@ -1,9 +1,9 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_ATI bool "xf86-video-ati" depends on BR2_i386 || BR2_x86_64 # libdrm-radeon + 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
@@ -14,3 +14,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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH v2 3/13 package/mesa3d: fix improper dependency of blind option
In reply to Yann E. MORINFrom: "Yann E. MORIN" <[email protected]>
Currently, the blind option BR2_PACKAGE_MESA3D_DRI_DRIVER depends on !STATIC.
But this option is also selected by the various DRI drivers, and none of them currently depend on !STATIC (although there is a comment stating DRI drivers need !STATIC, there's nothing to enforce that).
So, we could well end-up with an inconsistent configuration, where some DRI drivers are selected even though STATIC is set.
Enclose all DRI drivers in an 'if !STATIC' condition, remove the dependency from the blind option, move the comment so it is nearer the affected drivers, rephrase the comment to match the rules about dependencies on toolchain features.
--- package/mesa3d/Config.in | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
package/mesa3d/Config.in +7 -4
@@ -26,12 +26,8 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER config BR2_PACKAGE_MESA3D_DRI_DRIVER select BR2_PACKAGE_MESA3D_DRIVER - depends on !BR2_PREFER_STATIC_LIB bool -comment "DRI drivers need shared libdrm" - depends on BR2_PREFER_STATIC_LIB - config BR2_PACKAGE_MESA3D_DRIVER bool
@@ -60,6 +56,11 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST This is a software opengl implementation using the Gallium3D infrastructure. +comment "DRI drivers need dynamic library" + depends on BR2_PREFER_STATIC_LIB + +if !BR2_PREFER_STATIC_LIB + config BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST bool "DRI swrast driver" select BR2_PACKAGE_MESA3D_DRI_DRIVER
@@ -84,6 +85,8 @@ config BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON help Legacy Radeon driver for R100 series GPUs. +endif # !BR2_PREFER_STATIC_LIB + endmenu menu "Additional API Support"
Signature · 1 line
1.8.3.2
Thomas Petazzoni
AppliedPATCH 3/13 package/mesa3d: fix improper dependency of blind option
Dear Yann E. MORIN,
Quoted 17 lines · Yann E. MORIN
From: "Yann E. MORIN" <[email protected]>
Currently, the blind option
BR2_PACKAGE_MESA3D_DRI_DRIVERdepends on !STATIC.But this option is also selected by the various DRI drivers, and none of them currently depend on !STATIC (although there is a comment stating DRI drivers need !STATIC, there's nothing to enforce that).
So, we could well end-up with an inconsistent configuration, where some DRI drivers are selected even though STATIC is set.
Enclose all DRI drivers in an 'if !STATIC' condition, remove the dependency from the blind option, move the comment so it is nearer the affected drivers, rephrase the comment to match the rules about dependencies on toolchain features.
Quoted 6 lines
Signed-off-by "Yann E. MORIN" <[email protected]>Cc Paul Cercueil <[email protected]>Cc Bernd Kuhls <[email protected]>--- package/mesa3d/Config.in | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
Thanks, applied, with one minor nit, see below.
package/mesa3d/Config.in config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST · line 60
Quoted 2 lines
package/mesa3d/Config.in +2
-0+comment "DRI drivers need dynamic library" + depends on BR2_PREFER_STATIC_LIB
This is not the correct wording according to the manual, it should have been:
comment "DRI drivers need a toolchain w/ dynamic library"
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v2 4/13 package/mesa3d: re-arrange menu items
In reply to Yann E. MORINFrom: "Yann E. MORIN" <[email protected]>
Make mesa3d a menuconfig, ie. a sub-menu on the boolean option.
Move drivers and additional API selections out of their own submenus, add a comment as separator.
This will make it easier to further re-arrange the config items in the following patches, to fix-enhance the packaging to handle the full-openGL provider stuff.
--- package/mesa3d/Config.in | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-)
package/mesa3d/Config.in +8 -7
@@ -1,4 +1,4 @@ -config BR2_PACKAGE_MESA3D +menuconfig BR2_PACKAGE_MESA3D bool "Mesa 3D Graphics Library" select BR2_PACKAGE_LIBDRM select BR2_PACKAGE_EXPAT
@@ -31,7 +31,7 @@ config BR2_PACKAGE_MESA3D_DRI_DRIVER config BR2_PACKAGE_MESA3D_DRIVER bool -menu "Drivers" +comment "Gallium drivers" config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU bool "Gallium nouveau driver"
@@ -61,6 +61,8 @@ comment "DRI drivers need dynamic library" if !BR2_PREFER_STATIC_LIB +comment "DRI drivers" + config BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST bool "DRI swrast driver" select BR2_PACKAGE_MESA3D_DRI_DRIVER
@@ -87,10 +89,9 @@ config BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON endif # !BR2_PREFER_STATIC_LIB -endmenu +if BR2_PACKAGE_MESA3D_DRIVER -menu "Additional API Support" -depends on BR2_PACKAGE_MESA3D_DRIVER +comment "Additional API Support" config BR2_PACKAGE_MESA3D_OPENGL_EGL bool "EGL"
@@ -107,7 +108,7 @@ config BR2_PACKAGE_MESA3D_OPENGL_ES Use the Khronos OpenGL ES APIs. This is commonly used on embedded systems and represents a subset of the OpenGL API. -endmenu +endif # BR2_PACKAGE_MESA3D_DRIVER config BR2_PACKAGE_PROVIDES_OPENGL_EGL default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_EGL
@@ -115,7 +116,7 @@ config BR2_PACKAGE_PROVIDES_OPENGL_EGL config BR2_PACKAGE_PROVIDES_OPENGL_ES default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_ES -endif +endif # BR2_PACKAGE_MESA3D comment "mesa3d needs a toolchain w/ C++, largefile" depends on !BR2_LARGEFILE || !BR2_INSTALL_LIBSTDCPP
Signature · 1 line
1.8.3.2
PATCH v2 5/13 package/mesa3d: DRI drivers depend on X.org
In reply to Yann E. MORINFrom: "Yann E. MORIN" <[email protected]>
It does not make sense to build DRI drivers without X.org.
--- package/mesa3d/Config.in | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
package/mesa3d/Config.in +4 -5
@@ -56,10 +56,10 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST This is a software opengl implementation using the Gallium3D infrastructure. -comment "DRI drivers need dynamic library" - depends on BR2_PREFER_STATIC_LIB +comment "DRI drivers need dynamic library and an X.Org server" + depends on BR2_PREFER_STATIC_LIB || !BR2_PACKAGE_XSERVER_XORG_SERVER -if !BR2_PREFER_STATIC_LIB +if !BR2_PREFER_STATIC_LIB && BR2_PACKAGE_XSERVER_XORG_SERVER comment "DRI drivers"
@@ -73,7 +73,6 @@ config BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST config BR2_PACKAGE_MESA3D_DRI_DRIVER_I965 bool "DRI i965 driver" depends on BR2_i386 || BR2_x86_64 - depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_MESA3D_DRI_DRIVER select BR2_PACKAGE_LIBDRM_INTEL help
@@ -87,7 +86,7 @@ config BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON help Legacy Radeon driver for R100 series GPUs. -endif # !BR2_PREFER_STATIC_LIB +endif # !BR2_PREFER_STATIC_LIB && BR2_PACKAGE_XSERVER_XORG_SERVER if BR2_PACKAGE_MESA3D_DRIVER
Signature · 1 line
1.8.3.2
PATCH v2 6/13 package/mesa3d: add comment for when OpenGL EGL is not available
In reply to Yann E. MORINFrom: "Yann E. MORIN" <[email protected]>
OpenGL EGL needs udev support, so add a comment stating so.
Also, reword the OpenGL EGL prompt to be in the same format as the OpenGL ES prompt (and like the full OpenGL prompt that will shortly be added, too.)
--- package/mesa3d/Config.in | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
package/mesa3d/Config.in +4 -1
@@ -92,8 +92,11 @@ if BR2_PACKAGE_MESA3D_DRIVER comment "Additional API Support" +comment "OpenGL EGL needs udev /dev management" + depends on !BR2_PACKAGE_HAS_UDEV + config BR2_PACKAGE_MESA3D_OPENGL_EGL - bool "EGL" + bool "OpenGL EGL" depends on BR2_PACKAGE_HAS_UDEV select BR2_PACKAGE_HAS_OPENGL_EGL help
Signature · 1 line
1.8.3.2
PATCH v2 7/13 package/mesa3d: simplify the code enabling full-OpenGL
In reply to Yann E. MORINFrom: "Yann E. MORIN" <[email protected]>
Currently, full-OpenGL is enabled by checking that at least one driver is enabled. This is done by checking that the just-constructed lists of drivers are not empty.
But we already have a variable that is set to 'y' as soon as a driver is selected:
- DRI drivers select BR2_PACKAGE_MESA3D_DRI_DRIVER
- Gallium drivers select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
- both BR2_PACKAGE_MESA3D_DRI_DRIVER and BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_MESA3D_DRIVER
So, BR2_PACKAGE_MESA3D_DRIVER is set to 'y' as soon as at least one driver is selected. WE can use that variable rather than comparing the lists of drivers.
Also, rearrange the code in a more logical way, by moving the code that enables OpenGL nearer to the code enabling EGL and GLES.
--- package/mesa3d/mesa3d.mk | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-)
package/mesa3d/mesa3d.mk +8 -10
@@ -57,16 +57,6 @@ MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST) += swrast MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_I965) += i965 MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON) += radeon -# at least one API is required, for buildroot enable OpenGL API by default -# other APIs (EGL, EGL_ES) are optional -ifeq ($(MESA3D_GALLIUM_DRIVERS-y)$(MESA3D_DRI_DRIVERS-y),) -MESA3D_CONF_OPT += \ - --disable-opengl -else -MESA3D_CONF_OPT += \ - --enable-opengl -endif - ifeq ($(MESA3D_GALLIUM_DRIVERS-y),) MESA3D_CONF_OPT += \ --without-gallium-drivers
@@ -89,6 +79,14 @@ endif # APIs +# at least one API is required, for buildroot enable OpenGL API by default +# other APIs (EGL, EGL_ES) are optional +ifeq ($(BR2_PACKAGE_MESA3D_DRIVER),y) +MESA3D_CONF_OPT += --enable-opengl +else +MESA3D_CONF_OPT += --disable-opengl +endif + ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y) # egl depends on gbm, gbm depends on udev MESA3D_DEPENDENCIES += udev
Signature · 1 line
1.8.3.2
PATCH v2 8/13 package/mesa3d: only enable full OpenGL when a DRI driver is enabled
In reply to Yann E. MORINFrom: "Yann E. MORIN" <[email protected]>
Full OpenGL is only provided when:
- a DRI driver is enabled,
- and X.Org is enabled
Since DRI driver depend on X.Org being selected, this means that we can (have to) enable full OpenGL as soon as a DRI driver is enabled.
On the other hand, Gallium drivers, which currently do enable full OpenGL, only really provide OpenGL EGL and GLES, not full OpenGL.
So we exclude Gallium drivers when checking whether to enable full OpenGL in mesa3d.
--- package/mesa3d/mesa3d.mk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
package/mesa3d/mesa3d.mk +3 -3
@@ -79,9 +79,9 @@ endif # APIs -# at least one API is required, for buildroot enable OpenGL API by default -# other APIs (EGL, EGL_ES) are optional -ifeq ($(BR2_PACKAGE_MESA3D_DRIVER),y) +# Full OpenGL is provided by DRI drivers with X.Org; DRI drivers are only +# enabled when X.Org is enabled anyway, so no need to check for X.Org here. +ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),y) MESA3D_CONF_OPT += --enable-opengl else MESA3D_CONF_OPT += --disable-opengl
Signature · 1 line
1.8.3.2
PATCH v2 9/13 package/xorg-server: do not force-select xf86driproto for mesa3d
In reply to Yann E. MORINFrom: "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
@@ -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
PATCH v2 10/13 package/libgl: introduce as a new virtual package for full-openGL providers
In reply to Yann E. MORINFrom: "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.
--- 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
@@ -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
@@ -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
@@ -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
PATCH v2 11/13 package/mesa3d: with a DRI driver, is a full OpenGL provider
In reply to Yann E. MORINFrom: "Yann E. MORIN" <[email protected]>
Make mesa3d a provider for full OpenGL, as soon as a DRI driver is enabled.
Full OpenGL is only possible when:
- a DRI driver is enabled,
- and X.Org is enabled
Since DRI driver in fact depend on X.Org being enabled in the first place, we can safely declare mesa3d as a full openGL provider as soon as at least one DRI driver is enabled.
--- package/mesa3d/Config.in | 4 ++++ 1 file changed, 4 insertions(+)
package/mesa3d/Config.in +4 -0
@@ -26,8 +26,12 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER config BR2_PACKAGE_MESA3D_DRI_DRIVER select BR2_PACKAGE_MESA3D_DRIVER + select BR2_PACKAGE_HAS_OPENGL bool +config BR2_PACKAGE_PROVIDES_OPENGL + default "mesa3d" if BR2_PACKAGE_MESA3D_DRI_DRIVER + config BR2_PACKAGE_MESA3D_DRIVER bool
Signature · 1 line
1.8.3.2
PATCH v2 12/13 package/libevas: switch dependency from mesa3d to _HAS_OPENGL
In reply to Yann E. MORINFrom: "Yann E. MORIN" <[email protected]>
We now have a virtual package that represents availability of full OpenGL.
This should be the end of this dependency hell epic, now. :-)
--- package/efl/libevas/Config.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
package/efl/libevas/Config.in +1 -1
@@ -148,7 +148,7 @@ choice config BR2_PACKAGE_LIBEVAS_GL bool "generic OpenGL" - depends on BR2_PACKAGE_MESA3D + depends on BR2_PACKAGE_HAS_OPENGL select BR2_PACKAGE_LIBEET config BR2_PACKAGE_LIBEVAS_GLES_SGX
Signature · 1 line
1.8.3.2
PATCH v2 13/13 package/vlc: depends on the virtual package libgl
In reply to Yann E. MORINFrom: "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.
This is support for full OpenGL, which is only available when X.Org is enabled, which is anyway a dependency of full OpenGL.
--- package/vlc/vlc.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
package/vlc/vlc.mk +2 -2
@@ -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
PATCH 13/13 package/vlc: depends on the virtual package libgl
"Yann E. MORIN" <[email protected]> wrote in news:55d8bed0fa397c30345e1ba8318eeeb76fac7a3a.1396699629.git.yann.morin.199 8 at free.fr:
Quoted 1 line
We now have a virtual package, libgl, which ensures openGL is available.
Hi,
a similar patch should be included in your patch series to fix
http://autobuild.buildroot.net/results/f7a/f7af081048ad967ed4a76afd8c527395f7
b0c2dc/
package/x11r7/xapp_xdriinfo/Config.in +4 -1
@@ -2,6 +2,9 @@ config BR2_PACKAGE_XAPP_XDRIINFO bool "xdriinfo" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XPROTO_GLPROTO - depends on BR2_PACKAGE_MESA3D + depends on BR2_PACKAGE_HAS_LIBGL help query configuration information of DRI drivers + +comment "xdriinfo depends on OpenGL" + depends on !BR2_PACKAGE_HAS_LIBGL
Regards, Bernd
PATCH v2 13/13 package/vlc: depends on the virtual package libgl
Bernd, All,
On 2014-04-17 16:40 +0200, Bernd Kuhls spake thusly:
Quoted 11 lines
"Yann E. MORIN" <[email protected]> wrote in news:55d8bed0fa397c30345e1ba8318eeeb76fac7a3a.1396699629.git.yann.morin.199 8 at free.fr:
Quoted 1 line
We now have a virtual package, libgl, which ensures openGL is available.
Hi,
a similar patch should be included in your patch series to fix
http://autobuild.buildroot.net/results/f7a/f7af081048ad967ed4a76afd8c527395f7
b0c2dc/
Sure! Care to add your SoB-line and a proper commit-log, so I can add it to my series?
Regards,
Yann E. MORIN.
Quoted 21 lines
package/x11r7/xapp_xdriinfo/Config.in +4
-1@@ -2,6 +2,9 @@ config BR2_PACKAGE_XAPP_XDRIINFO bool "xdriinfo" select BR2_PACKAGE_XLIB_LIBX11 select BR2_PACKAGE_XPROTO_GLPROTO - depends on BR2_PACKAGE_MESA3D + depends on BR2_PACKAGE_HAS_LIBGL help query configuration information of DRI drivers + +comment "xdriinfo depends on OpenGL" + depends on !BR2_PACKAGE_HAS_LIBGLRegards, Bernd
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
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. | '------------------------------^-------^------------------^--------------------'
PATCH 13/13 package/vlc: depends on the virtual package libgl
"Yann E. MORIN" <[email protected]> wrote in news:20140417145428.GA3270 at free.fr:
Quoted 2 lines
Sure! Care to add your SoB-line and a proper commit-log, so I can add it to my series?
Hi,
done: http://patchwork.ozlabs.org/patch/339953/
Regards, Bernd