Skip to contentSkip to conversation

Mesa upgrade/improvements

PATCH In review Ross Burton 5 participants 25 messages Aug 2, 2012 – Aug 6, 2012

lore
Share & tools
lore
#0 lore raw

v3 cover Mesa upgrade/improvements

Re-arranged and fixed up some problems.

The following changes since commit 62d42fe3cfa575cb97b484ccf7b2e9a25cc50770:

tiny-init: Setup /dev/ptmx in init (2012-08-01 23:11:18 +0100)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib ross/mesa

for you to fetch changes up to 5de29e150a720ccb8749362cfe5fb56f234fb385:

mesa: enable EGL, with DRM and X11 platforms (2012-08-02 17:43:18 +0100)

----------------------------------------------------------------
Damien Lespiau (2):
mesa: Update to 8.0.4 (latest stable version)
mesa: Use 'require' instead of 'include'

Ross Burton (9):
mesa: no need to depend on python-native, the class does that
mesa: format the packages list nicely
mesa: move glu.pc to libglu-dev
mesa: add --enable-shared-glapi, and package it in libglapi
mesa: enable the Graphic Buffer Manager library
mesa: enable GLES v1 and v2
mesa-demos: fix GLES2 build
mesa: respect x11 DISTRO_FEATURE
mesa: enable EGL, with DRM and X11 platforms

 .../mesa/{mesa-7.11.inc => mesa-8.0.4.inc}         |   14 +++---
 meta/recipes-graphics/mesa/mesa-common.inc         |   43 +++++++++++-----
 .../mesa/mesa-demos/gles2-info.patch               |   15 ++++++
 meta/recipes-graphics/mesa/mesa-demos_8.0.1.bb     |    5 +-
 ...ative_7.11.bb => mesa-dri-glsl-native_8.0.4.bb} |    4 +-
 meta/recipes-graphics/mesa/mesa-dri.inc            |   12 ++++-
 meta/recipes-graphics/mesa/mesa-dri_7.11.bb        |    4 --
 meta/recipes-graphics/mesa/mesa-dri_8.0.4.bb       |    4 ++
 meta/recipes-graphics/mesa/mesa-dri_git.bb         |    6 +--
 meta/recipes-graphics/mesa/mesa-git.inc            |   11 +++--
 meta/recipes-graphics/mesa/mesa-xlib_7.11.bb       |    5 --
 meta/recipes-graphics/mesa/mesa-xlib_8.0.4.bb      |    5 ++
 meta/recipes-graphics/mesa/mesa-xlib_git.bb        |    6 +--
 .../mesa/mesa/0001-Compile-with-uclibc.patch       |   52 ++++++++++++++++++++
 ...ossfix-mklib.patch => 0002-cross-compile.patch} |   39 ++++++++++++---
 ...sa_fix_for_x32.patch => 0003-fix-for-x32.patch} |   30 +++++++----
 ...-gross-hack-to-prevent-from-install-libgl.patch |   29 +++++++++++
 meta/recipes-graphics/mesa/mesa/crossfix.patch     |   18 -------
 meta/recipes-graphics/mesa/mesa/uclibc.patch       |   42 ----------------
 19 files changed, 222 insertions(+), 122 deletions(-)
 rename meta/recipes-graphics/mesa/{mesa-7.11.inc => mesa-8.0.4.inc} (60%)
 create mode 100644 meta/recipes-graphics/mesa/mesa-demos/gles2-info.patch
 rename meta/recipes-graphics/mesa/{mesa-dri-glsl-native_7.11.bb => mesa-dri-glsl-native_8.0.4.bb} (84%)
 delete mode 100644 meta/recipes-graphics/mesa/mesa-dri_7.11.bb
 create mode 100644 meta/recipes-graphics/mesa/mesa-dri_8.0.4.bb
 delete mode 100644 meta/recipes-graphics/mesa/mesa-xlib_7.11.bb
 create mode 100644 meta/recipes-graphics/mesa/mesa-xlib_8.0.4.bb
 create mode 100644 meta/recipes-graphics/mesa/mesa/0001-Compile-with-uclibc.patch
 rename meta/recipes-graphics/mesa/mesa/{crossfix-mklib.patch => 0002-cross-compile.patch} (68%)
 rename meta/recipes-graphics/mesa/mesa/{mesa_fix_for_x32.patch => 0003-fix-for-x32.patch} (59%)
 create mode 100644 meta/recipes-graphics/mesa/mesa/0004-gross-hack-to-prevent-from-install-libgl.patch
 delete mode 100644 meta/recipes-graphics/mesa/mesa/crossfix.patch
 delete mode 100644 meta/recipes-graphics/mesa/mesa/uclibc.patch

Damien Lespiau (2):
mesa: Update to 8.0.4 (latest stable version)
mesa: Use 'require' instead of 'include'

Ross Burton (9):
mesa: no need to depend on python-native, the class does that
mesa: format the packages list nicely
mesa: move glu.pc to libglu-dev
mesa: add --enable-shared-glapi, and package it in libglapi
mesa: enable the Graphic Buffer Manager library
mesa: enable GLES v1 and v2
mesa-demos: fix GLES2 build
mesa: respect x11 DISTRO_FEATURE
mesa: enable EGL, with DRM and X11 platforms

 .../mesa/{mesa-7.11.inc => mesa-8.0.4.inc}         |   14 +++---
 meta/recipes-graphics/mesa/mesa-common.inc         |   43 +++++++++++-----
 .../mesa/mesa-demos/gles2-info.patch               |   15 ++++++
 meta/recipes-graphics/mesa/mesa-demos_8.0.1.bb     |    5 +-
 ...ative_7.11.bb => mesa-dri-glsl-native_8.0.4.bb} |    4 +-
 meta/recipes-graphics/mesa/mesa-dri.inc            |   12 ++++-
 meta/recipes-graphics/mesa/mesa-dri_7.11.bb        |    4 --
 meta/recipes-graphics/mesa/mesa-dri_8.0.4.bb       |    4 ++
 meta/recipes-graphics/mesa/mesa-dri_git.bb         |    6 +--
 meta/recipes-graphics/mesa/mesa-git.inc            |   11 +++--
 meta/recipes-graphics/mesa/mesa-xlib_7.11.bb       |    5 --
 meta/recipes-graphics/mesa/mesa-xlib_8.0.4.bb      |    5 ++
 meta/recipes-graphics/mesa/mesa-xlib_git.bb        |    6 +--
 .../mesa/mesa/0001-Compile-with-uclibc.patch       |   52 ++++++++++++++++++++
 ...ossfix-mklib.patch => 0002-cross-compile.patch} |   39 ++++++++++++---
 ...sa_fix_for_x32.patch => 0003-fix-for-x32.patch} |   30 +++++++----
 ...-gross-hack-to-prevent-from-install-libgl.patch |   29 +++++++++++
 meta/recipes-graphics/mesa/mesa/crossfix.patch     |   18 -------
 meta/recipes-graphics/mesa/mesa/uclibc.patch       |   42 ----------------
 19 files changed, 222 insertions(+), 122 deletions(-)
 rename meta/recipes-graphics/mesa/{mesa-7.11.inc => mesa-8.0.4.inc} (60%)
 create mode 100644 meta/recipes-graphics/mesa/mesa-demos/gles2-info.patch
 rename meta/recipes-graphics/mesa/{mesa-dri-glsl-native_7.11.bb => mesa-dri-glsl-native_8.0.4.bb} (84%)
 delete mode 100644 meta/recipes-graphics/mesa/mesa-dri_7.11.bb
 create mode 100644 meta/recipes-graphics/mesa/mesa-dri_8.0.4.bb
 delete mode 100644 meta/recipes-graphics/mesa/mesa-xlib_7.11.bb
 create mode 100644 meta/recipes-graphics/mesa/mesa-xlib_8.0.4.bb
 create mode 100644 meta/recipes-graphics/mesa/mesa/0001-Compile-with-uclibc.patch
 rename meta/recipes-graphics/mesa/mesa/{crossfix-mklib.patch => 0002-cross-compile.patch} (68%)
 rename meta/recipes-graphics/mesa/mesa/{mesa_fix_for_x32.patch => 0003-fix-for-x32.patch} (59%)
 create mode 100644 meta/recipes-graphics/mesa/mesa/0004-gross-hack-to-prevent-from-install-libgl.patch
 delete mode 100644 meta/recipes-graphics/mesa/mesa/crossfix.patch
 delete mode 100644 meta/recipes-graphics/mesa/mesa/uclibc.patch
Signature · 1 line
1.7.10
#1 lore raw

PATCH v3 1/11 mesa: no need to depend on python-native, the class does that

---
 meta/recipes-graphics/mesa/mesa-common.inc |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/recipes-graphics/mesa/mesa-common.inc +2 -2
index 120a256..403a961 100644
@@ -12,14 +12,14 @@ SECTION = "x11"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://docs/license.html;md5=7a3373c039b6b925c427755a4f779c1d"
 
-INC_PR = "r15"
+INC_PR = "r16"
 PE = "2"
 
 
 PROTO_DEPS = "xf86driproto glproto"
 LIB_DEPS = "virtual/libx11 libxext libxxf86vm libxdamage libxfixes libxml2-native"
 
-DEPENDS = "makedepend-native python-native flex-native bison-native ${PROTO_DEPS} ${LIB_DEPS}"
+DEPENDS = "makedepend-native flex-native bison-native ${PROTO_DEPS} ${LIB_DEPS}"
 
 PROVIDES = "virtual/libgl"
 
Signature · 1 line
1.7.10
#2 lore raw

PATCH v3 2/11 mesa: format the packages list nicely

In reply to Ross Burton
---
 meta/recipes-graphics/mesa/mesa-common.inc |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
meta/recipes-graphics/mesa/mesa-common.inc +6 -1
index 403a961..da628b3 100644
@@ -39,7 +39,12 @@ EXCLUDE_FROM_WORLD = "1"
 # ie mesa-dri could be empty and mesa-dri-dev RDEPENDS on it
 ALLOW_EMPTY_${PN} = "1"
 
-PACKAGES =+ "libegl libegl-dev libegl-dbg libglu libglu-dev libosmesa libosmesa-dev libgl libgl-dev"
+PACKAGES =+ "libegl libegl-dev libegl-dbg \
+             libglu libglu-dev \
+             libosmesa libosmesa-dev \
+             libgl libgl-dev \
+            "
+
 FILES_libegl = "${libdir}/libEGL.so.* ${libdir}/egl/*.so"
 FILES_libgl = "${libdir}/libGL.so.*"
 FILES_libglu = "${libdir}/libGLU.so.*"
Signature · 1 line
1.7.10
#3 lore raw

PATCH v3 3/11 mesa: move glu.pc to libglu-dev

In reply to Ross Burton
---
 meta/recipes-graphics/mesa/mesa-common.inc |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-graphics/mesa/mesa-common.inc +1 -1
index da628b3..e508b6d 100644
@@ -52,7 +52,7 @@ FILES_libosmesa = "${libdir}/libOSMesa.so.*"
 
 FILES_libegl-dev = "${libdir}/libEGL.* ${includedir}/EGL"
 FILES_libgl-dev = "${libdir}/libGL.* ${includedir}/GL ${libdir}/pkgconfig/gl.pc"
-FILES_libglu-dev = "${libdir}/libGLU.* ${includedir}/GL/glu*.h"
+FILES_libglu-dev = "${libdir}/libGLU.* ${includedir}/GL/glu*.h ${libdir}/pkgconfig/glu.pc"
 FILES_libosmesa-dev = "${libdir}/libOSMesa.* ${includedir}/osmesa.h"
 
 FILES_${PN}-dbg += "${libdir}/dri/.debug/*"
Signature · 1 line
1.7.10
#4 lore raw

PATCH v3 4/11 mesa: add --enable-shared-glapi, and package it in libglapi

In reply to Ross Burton
---
 meta/recipes-graphics/mesa/mesa-common.inc |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
meta/recipes-graphics/mesa/mesa-common.inc +6 -2
index e508b6d..6582bcf 100644
@@ -12,7 +12,7 @@ SECTION = "x11"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://docs/license.html;md5=7a3373c039b6b925c427755a4f779c1d"
 
-INC_PR = "r16"
+INC_PR = "r17"
 PE = "2"
 
 
@@ -31,7 +31,8 @@ inherit autotools pkgconfig pythonnative
 EXTRA_OECONF = "--enable-glu \
                 --disable-glw \
                 --disable-glut \
-                --enable-glx-tls"
+                --enable-glx-tls \
+                --enable-shared-glapi"
 
 # Multiple virtual/gl providers being built breaks staging
 EXCLUDE_FROM_WORLD = "1"
@@ -43,15 +44,18 @@ PACKAGES =+ "libegl libegl-dev libegl-dbg \
              libglu libglu-dev \
              libosmesa libosmesa-dev \
              libgl libgl-dev \
+             libglapi libglapi-dev \
             "
 
 FILES_libegl = "${libdir}/libEGL.so.* ${libdir}/egl/*.so"
 FILES_libgl = "${libdir}/libGL.so.*"
+FILES_libglapi = "${libdir}/libglapi.so.*"
 FILES_libglu = "${libdir}/libGLU.so.*"
 FILES_libosmesa = "${libdir}/libOSMesa.so.*"
 
 FILES_libegl-dev = "${libdir}/libEGL.* ${includedir}/EGL"
 FILES_libgl-dev = "${libdir}/libGL.* ${includedir}/GL ${libdir}/pkgconfig/gl.pc"
+FILES_libglapi-dev = "${libdir}/libglapi.*"
 FILES_libglu-dev = "${libdir}/libGLU.* ${includedir}/GL/glu*.h ${libdir}/pkgconfig/glu.pc"
 FILES_libosmesa-dev = "${libdir}/libOSMesa.* ${includedir}/osmesa.h"
 
Signature · 1 line
1.7.10
#5 lore raw

PATCH v3 5/11 mesa: enable the Graphic Buffer Manager library

In reply to Ross Burton
---
 meta/recipes-graphics/mesa/mesa-common.inc |    5 ++++-
 meta/recipes-graphics/mesa/mesa-dri.inc    |    6 ++++--
 2 files changed, 8 insertions(+), 3 deletions(-)
meta/recipes-graphics/mesa/mesa-common.inc +4 -1
index 6582bcf..ff9f882 100644
@@ -12,7 +12,7 @@ SECTION = "x11"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://docs/license.html;md5=7a3373c039b6b925c427755a4f779c1d"
 
-INC_PR = "r17"
+INC_PR = "r18"
 PE = "2"
 
 
@@ -45,15 +45,18 @@ PACKAGES =+ "libegl libegl-dev libegl-dbg \
              libosmesa libosmesa-dev \
              libgl libgl-dev \
              libglapi libglapi-dev \
+             libgbm libgbm-dev \
             "
 
 FILES_libegl = "${libdir}/libEGL.so.* ${libdir}/egl/*.so"
+FILES_libgbm = "${libdir}/libgbm.so.*"
 FILES_libgl = "${libdir}/libGL.so.*"
 FILES_libglapi = "${libdir}/libglapi.so.*"
 FILES_libglu = "${libdir}/libGLU.so.*"
 FILES_libosmesa = "${libdir}/libOSMesa.so.*"
 
 FILES_libegl-dev = "${libdir}/libEGL.* ${includedir}/EGL"
+FILES_libgbm-dev = "${libdir}/libgbm* ${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h"
 FILES_libgl-dev = "${libdir}/libGL.* ${includedir}/GL ${libdir}/pkgconfig/gl.pc"
 FILES_libglapi-dev = "${libdir}/libglapi.*"
 FILES_libglu-dev = "${libdir}/libGLU.* ${includedir}/GL/glu*.h ${libdir}/pkgconfig/glu.pc"
meta/recipes-graphics/mesa/mesa-dri.inc +4 -2
index 6bf2503..f8f1fff 100644
@@ -1,5 +1,5 @@
 PROTO_DEPS += "dri2proto"
-LIB_DEPS += "libdrm expat"
+LIB_DEPS += "libdrm expat udev"
 
 # most of our targets do not have DRI so will use mesa-xlib
 DEFAULT_PREFERENCE = "-1"
@@ -8,7 +8,9 @@ DRIDRIVERS = "swrast"
 DRIDRIVERS_append_x86 = ",i915,i965"
 DRIDRIVERS_append_x86-64 = ",i915,i965"
 
-EXTRA_OECONF += "--with-driver=dri --disable-egl --disable-gallium --without-gallium-drivers --with-dri-drivers=${DRIDRIVERS}"
+EXTRA_OECONF += "--disable-gallium --without-gallium-drivers"
+EXTRA_OECONF += "--enable-dri --with-dri-drivers=${DRIDRIVERS}"
+EXTRA_OECONF += "--disable-egl --enable-gbm"
 
 python populate_packages_prepend() {
     dri_drivers_root = os.path.join(d.getVar('libdir', True), "dri")
Signature · 1 line
1.7.10
#6 lore raw

PATCH v3 6/11 mesa: Update to 8.0.4 (latest stable version)

In reply to Ross Burton

From: Damien Lespiau <[email protected]>

- The license file has changed, but the project still has the same license
- Patches have been rebased on top of the 8.0 branch. crossfix.patch and crossfix-mklib.patch have been merged as they address the same problem

---
 .../mesa/{mesa-7.11.inc => mesa-8.0.4.inc}         |   13 +++--
 meta/recipes-graphics/mesa/mesa-common.inc         |    4 +-
 ...ative_7.11.bb => mesa-dri-glsl-native_8.0.4.bb} |    4 +-
 .../mesa/{mesa-dri_7.11.bb => mesa-dri_8.0.4.bb}   |    0
 meta/recipes-graphics/mesa/mesa-git.inc            |    9 ++--
 .../mesa/{mesa-xlib_7.11.bb => mesa-xlib_8.0.4.bb} |    0
 .../mesa/mesa/0001-Compile-with-uclibc.patch       |   52 ++++++++++++++++++++
 ...ossfix-mklib.patch => 0002-cross-compile.patch} |   39 ++++++++++++---
 ...sa_fix_for_x32.patch => 0003-fix-for-x32.patch} |   30 +++++++----
 meta/recipes-graphics/mesa/mesa/crossfix.patch     |   18 -------
 meta/recipes-graphics/mesa/mesa/uclibc.patch       |   42 ----------------
 11 files changed, 118 insertions(+), 93 deletions(-)
 rename meta/recipes-graphics/mesa/{mesa-7.11.inc => mesa-8.0.4.inc} (67%)
 rename meta/recipes-graphics/mesa/{mesa-dri-glsl-native_7.11.bb => mesa-dri-glsl-native_8.0.4.bb} (84%)
 rename meta/recipes-graphics/mesa/{mesa-dri_7.11.bb => mesa-dri_8.0.4.bb} (100%)
 rename meta/recipes-graphics/mesa/{mesa-xlib_7.11.bb => mesa-xlib_8.0.4.bb} (100%)
 create mode 100644 meta/recipes-graphics/mesa/mesa/0001-Compile-with-uclibc.patch
 rename meta/recipes-graphics/mesa/mesa/{crossfix-mklib.patch => 0002-cross-compile.patch} (68%)
 rename meta/recipes-graphics/mesa/mesa/{mesa_fix_for_x32.patch => 0003-fix-for-x32.patch} (59%)
 delete mode 100644 meta/recipes-graphics/mesa/mesa/crossfix.patch
 delete mode 100644 meta/recipes-graphics/mesa/mesa/uclibc.patch
meta/recipes-graphics/mesa/mesa-8.0.4.inc renamed from meta/recipes-graphics/mesa/mesa-7.11.inc +6 -7
similarity index 67%
rename from meta/recipes-graphics/mesa/mesa-7.11.inc
rename to meta/recipes-graphics/mesa/mesa-8.0.4.inc
index 7c4a690..d9d17bb 100644
@@ -1,16 +1,15 @@
 DEPENDS += "mesa-dri-glsl-native"
 
-
 SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2 \ 
-           file://uclibc.patch \
-           file://crossfix.patch \
-           file://crossfix-mklib.patch \
-           file://mesa_fix_for_x32.patch \
+           file://0001-Compile-with-uclibc.patch \
+           file://0002-cross-compile.patch \
+           file://0003-fix-for-x32.patch \
            "
+
 S = "${WORKDIR}/Mesa-${PV}"
 
-SRC_URI[md5sum] = "ff03aca82d0560009a076a87c888cf13"
-SRC_URI[sha256sum] = "f8bf37a00882840a3e3d327576bc26a79ae7f4e18fe1f7d5f17a5b1c80dd7acf"
+SRC_URI[md5sum] = "d546f988adfdf986cff45b1efa2d8a46"
+SRC_URI[sha256sum] = "02ed19f4f5f6535dda03a9932a81438aa78ea723ebba1f39a3d49a70a4e1d07e"
 
 do_configure_prepend() {
   #check for python not python2, because python-native does not stage python2 binary/link
meta/recipes-graphics/mesa/mesa-common.inc +2 -2
index ff9f882..aac3bbe 100644
@@ -10,9 +10,9 @@ HOMEPAGE = "http://mesa3d.org"
 BUGTRACKER = "https://bugs.freedesktop.org"
 SECTION = "x11"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://docs/license.html;md5=7a3373c039b6b925c427755a4f779c1d"
+LIC_FILES_CHKSUM = "file://docs/license.html;md5=03ccdc4c379c4289aecfb8892c546f67"
 
-INC_PR = "r18"
+INC_PR = "r0"
 PE = "2"
 
 
meta/recipes-graphics/mesa/mesa-dri-glsl-native_8.0.4.bb renamed from meta/recipes-graphics/mesa/mesa-dri-glsl-native_7.11.bb +2 -2
similarity index 84%
rename from meta/recipes-graphics/mesa/mesa-dri-glsl-native_7.11.bb
rename to meta/recipes-graphics/mesa/mesa-dri-glsl-native_8.0.4.bb
index 9194595..a81fb6d 100644
@@ -8,8 +8,8 @@ LIC_FILES_CHKSUM = "file://glsl_parser.cpp;beginline=3;endline=33;md5=d078f1cddc
 DEPENDS = "makedepend-native"
 
 SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2"
-SRC_URI[md5sum] = "ff03aca82d0560009a076a87c888cf13"
-SRC_URI[sha256sum] = "f8bf37a00882840a3e3d327576bc26a79ae7f4e18fe1f7d5f17a5b1c80dd7acf"
+SRC_URI[md5sum] = "d546f988adfdf986cff45b1efa2d8a46"
+SRC_URI[sha256sum] = "02ed19f4f5f6535dda03a9932a81438aa78ea723ebba1f39a3d49a70a4e1d07e"
 
 S = "${WORKDIR}/Mesa-${PV}/src/glsl/"
 
meta/recipes-graphics/mesa/mesa-dri_8.0.4.bb renamed from meta/recipes-graphics/mesa/mesa-dri_7.11.bb +0 -0
similarity index 100%
rename from meta/recipes-graphics/mesa/mesa-dri_7.11.bb
rename to meta/recipes-graphics/mesa/mesa-dri_8.0.4.bb
meta/recipes-graphics/mesa/mesa-git.inc +5 -4
index 1b4c0a6..32b1d96 100644
@@ -1,14 +1,15 @@
 DEPENDS += "mesa-dri-glsl-native"
 
-SRCREV = "983fa4ad523535debf2e94cf6ac1fd4c5630c0d2"
-PV = "7.11+gitr${SRCPV}"
+SRCREV = "c1f4867c89adb1a6b19d66ec8ad146115909f0a7"
+PV = "8.0.4+git${SRCPV}"
 
 LIC_FILES_CHKSUM = "file://docs/license.html;md5=03ccdc4c379c4289aecfb8892c546f67"
 FILESEXTRAPATHS_prepend := "${THISDIR}/mesa-git:"
 
 SRC_URI = "git://anongit.freedesktop.org/git/mesa/mesa;protocol=git \
-           file://uclibc.patch \
-           file://crossfix.patch \
+           file://0001-Compile-with-uclibc.patch \
+           file://0002-cross-compile.patch \
+           file://0003-fix-for-x32.patch \
            "
 S = "${WORKDIR}/git"
 
meta/recipes-graphics/mesa/mesa-xlib_8.0.4.bb renamed from meta/recipes-graphics/mesa/mesa-xlib_7.11.bb +0 -0
similarity index 100%
rename from meta/recipes-graphics/mesa/mesa-xlib_7.11.bb
rename to meta/recipes-graphics/mesa/mesa-xlib_8.0.4.bb
meta/recipes-graphics/mesa/mesa/0001-Compile-with-uclibc.patch new file +52 -0

52 lines not on this page · raw message

meta/recipes-graphics/mesa/mesa/0002-cross-compile.patch renamed from meta/recipes-graphics/mesa/mesa/crossfix-mklib.patch +31 -8
similarity index 68%
rename from meta/recipes-graphics/mesa/mesa/crossfix-mklib.patch
rename to meta/recipes-graphics/mesa/mesa/0002-cross-compile.patch
index dc08228..dc8e994 100644
@@ -1,4 +1,7 @@
-This patch is ported from WindRiver linux and to fix cross compile failure.
+cross compile
+
+This patch is ported from WindRiver linux and to fix cross compile
+failure.
 
 And original commits are:
 commit 8d5ccc8113e1b51b0529a00c18a4aba956247e1b
@@ -7,10 +10,15 @@ commit 5c4212084b871a0c0fb7d174280ec9a634637deb
 Upstream-Status: Pending
 
 Signed-off-by: Kang Kai <[email protected]>
+---
+ bin/mklib |   24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
 
---- Mesa-7.10.2/bin/mklib.orig	2011-09-28 16:15:34.170000074 +0800
-+++ Mesa-7.10.2/bin/mklib	2011-09-28 16:15:42.370000073 +0800
-@@ -49,8 +49,8 @@
+diff --git a/bin/mklib b/bin/mklib
+index 9bac29e..b33aa90 100755
+--- a/bin/mklib
++++ b/bin/mklib
+@@ -49,8 +49,8 @@ expand_archives() {
                      /*) ;;
                      *)  FILE="$ORIG_DIR/$FILE" ;;
                  esac
@@ -21,7 +29,7 @@ Signed-off-by: Kang Kai <[email protected]>
                  for MEMBER in $MEMBERS ; do
                      NEWFILES="$NEWFILES $DIR/$MEMBER"
                  done
-@@ -77,7 +77,7 @@
+@@ -77,7 +77,7 @@ expand_archives() {
  make_ar_static_lib() {
      OPTS=$1
      shift;
@@ -30,7 +38,7 @@ Signed-off-by: Kang Kai <[email protected]>
      shift;
      LIBNAME=$1
      shift;
-@@ -87,11 +87,11 @@
+@@ -87,11 +87,11 @@ make_ar_static_lib() {
      rm -f ${LIBNAME}
  
      # make static lib
@@ -45,7 +53,7 @@ Signed-off-by: Kang Kai <[email protected]>
      fi
  
      echo ${LIBNAME}
-@@ -313,9 +313,9 @@
+@@ -313,9 +313,9 @@ case $ARCH in
  	if [ "x$LINK" = "x" ] ; then
  	    # -linker was not specified so set default link command now
              if [ $CPLUSPLUS = 1 ] ; then
@@ -57,7 +65,19 @@ Signed-off-by: Kang Kai <[email protected]>
              fi
  	fi
  
-@@ -531,9 +531,9 @@
+@@ -535,9 +535,9 @@ case $ARCH in
+ 	if [ "x$LINK" = "x" ] ; then
+ 	    # -linker was not specified so set default link command now
+             if [ $CPLUSPLUS = 1 ] ; then
+-                LINK=g++
++                LINK=$CXX
+             else
+-                LINK=gcc
++                LINK=$CC
+             fi
+ 	fi
+ 
+@@ -903,9 +903,9 @@ case $ARCH in
  	if [ "x$LINK" = "x" ] ; then
  	    # -linker was not specified so set default link command now
              if [ $CPLUSPLUS = 1 ] ; then
@@ -69,3 +89,6 @@ Signed-off-by: Kang Kai <[email protected]>
              fi
  	fi
  
+-- 
+1.7.10.4
+
meta/recipes-graphics/mesa/mesa/0003-fix-for-x32.patch renamed from meta/recipes-graphics/mesa/mesa/mesa_fix_for_x32.patch +20 -10
similarity index 59%
rename from meta/recipes-graphics/mesa/mesa/mesa_fix_for_x32.patch
rename to meta/recipes-graphics/mesa/mesa/0003-fix-for-x32.patch
index f072c34..2d6a150 100644
@@ -1,16 +1,19 @@
 Upstream-Status: Pending
 
-Using uname like this when cross compiling is a really bad idea. We 
-provide the correct linker flags, lets just assume we can get this 
+Using uname like this when cross compiling is a really bad idea. We
+provide the correct linker flags, lets just assume we can get this
 right ourselves.
 
 RP 2012/04/26
+---
+ bin/mklib |   16 ----------------
+ 1 file changed, 16 deletions(-)
 
-Index: Mesa-7.11/bin/mklib
-===================================================================
---- Mesa-7.11.orig/bin/mklib	2012-04-26 19:43:20.729150109 +0000
-+++ Mesa-7.11/bin/mklib	2012-04-26 20:30:22.421086163 +0000
-@@ -330,13 +330,7 @@
+diff --git a/bin/mklib b/bin/mklib
+index b33aa90..16cb017 100755
+--- a/bin/mklib
++++ b/bin/mklib
+@@ -330,15 +330,7 @@ case $ARCH in
  	    ;;
  	    esac
  
@@ -18,13 +21,15 @@ Index: Mesa-7.11/bin/mklib
 -	    # environment.  If so, pass -m32 flag to linker.
  	    set ${OBJECTS}
 -	    ABI32=`file $1 | grep 32-bit`
--	    if [ "${ABI32}" -a `uname -m` = "x86_64" ] ; then
+-	    ARM=`file $1 | grep ARM`
+-	    # Do not add "-m32" option for arm.
+-            if [ -z "$ARM" -a "${ABI32}" -a `uname -m` = "x86_64" ] ; then
 -		OPTS="-m32 ${OPTS}"
 -	    fi
  
              if [ "${ALTOPTS}" ] ; then
                  OPTS=${ALTOPTS}
-@@ -387,13 +381,7 @@
+@@ -389,15 +381,7 @@ case $ARCH in
  		# exptmp is removed below
  	    fi
  
@@ -32,9 +37,14 @@ Index: Mesa-7.11/bin/mklib
 -	    # environment.  If so, pass -m32 flag to linker.
  	    set ${OBJECTS}
 -	    ABI32=`file $1 | grep 32-bit`
--	    if [ "${ABI32}" -a `uname -m` = "x86_64" ] ; then
+-            ARM=`file $1 | grep ARM`
+-	    # Do not add "-m32" option for arm.
+-            if [ -z "$ARM" -a "${ABI32}" -a `uname -m` = "x86_64" ] ; then
 -		OPTS="-m32 ${OPTS}"
 -	    fi
              if [ "${ALTOPTS}" ] ; then
                  OPTS=${ALTOPTS}
              fi
+-- 
+1.7.10.4
+
meta/recipes-graphics/mesa/mesa/crossfix.patch deleted +0 -18
deleted file mode 100644
index d300e2f..0000000
@@ -1,18 +0,0 @@
-Upstream-Status: Pending
-
-Index: Mesa-7.5/bin/mklib
-===================================================================
---- Mesa-7.5.orig/bin/mklib	2009-08-12 13:01:34.000000000 +0100
-+++ Mesa-7.5/bin/mklib	2009-08-12 13:04:19.000000000 +0100
-@@ -234,9 +234,9 @@
- 	if [ "x$LINK" = "x" ] ; then
- 	    # -linker was not specified so set default link command now
-             if [ $CPLUSPLUS = 1 ] ; then
--                LINK=g++
-+                LINK=$CXX
-             else
--                LINK=gcc
-+                LINK=$CC
-             fi
- 	fi
- 
meta/recipes-graphics/mesa/mesa/uclibc.patch deleted +0 -42

42 lines not on this page · raw message

Signature · 1 line
1.7.10
#7 lore raw

PATCH v3 7/11 mesa: Use 'require' instead of 'include'

In reply to Ross Burton

From: Damien Lespiau <[email protected]>

These include files are really required, not optional.

---
 meta/recipes-graphics/mesa/mesa-dri_8.0.4.bb  |    6 +++---
 meta/recipes-graphics/mesa/mesa-dri_git.bb    |    6 +++---
 meta/recipes-graphics/mesa/mesa-xlib_8.0.4.bb |    6 +++---
 meta/recipes-graphics/mesa/mesa-xlib_git.bb   |    6 +++---
 4 files changed, 12 insertions(+), 12 deletions(-)
meta/recipes-graphics/mesa/mesa-dri_8.0.4.bb +3 -3
index 219e555..bd62c98 100644
@@ -1,4 +1,4 @@
-include mesa-common.inc
-include mesa-${PV}.inc
-include mesa-dri.inc
+require mesa-common.inc
+require mesa-${PV}.inc
+require mesa-dri.inc
 PR = "${INC_PR}.1"
meta/recipes-graphics/mesa/mesa-dri_git.bb +3 -3
index a0e1945..4b36f20 100644
@@ -1,6 +1,6 @@
-include mesa-common.inc
-include mesa-git.inc
-include mesa-dri.inc
+require mesa-common.inc
+require mesa-git.inc
+require mesa-dri.inc
 
 # this needs to be lower than -1 because all mesa-dri have -1 and git version has highest PV, but shouldn't be default
 DEFAULT_PREFERENCE = "-2"
meta/recipes-graphics/mesa/mesa-xlib_8.0.4.bb +3 -3
index 7547b22..a89640e 100644
@@ -1,5 +1,5 @@
-include mesa-common.inc
-include mesa-${PV}.inc
-include mesa-xlib.inc
+require mesa-common.inc
+require mesa-${PV}.inc
+require mesa-xlib.inc
 PR = "${INC_PR}.2"
 
meta/recipes-graphics/mesa/mesa-xlib_git.bb +3 -3
index be2f5d3..6647120 100644
@@ -1,6 +1,6 @@
-include mesa-common.inc
-include mesa-git.inc
-include mesa-xlib.inc
+require mesa-common.inc
+require mesa-git.inc
+require mesa-xlib.inc
 
 # this needs to be lower than -1 because all mesa-dri have -1 and git version has highest PV, but shouldn't be default
 DEFAULT_PREFERENCE = "-2"
Signature · 1 line
1.7.10
#8 lore raw

PATCH v3 8/11 mesa: enable GLES v1 and v2

In reply to Ross Burton

Patch originally by Damien Lespiau <[email protected]>.

---
 meta/recipes-graphics/mesa/mesa-common.inc |   10 ++++++++--
 meta/recipes-graphics/mesa/mesa-dri.inc    |    1 +
 2 files changed, 9 insertions(+), 2 deletions(-)
meta/recipes-graphics/mesa/mesa-common.inc +8 -2
index aac3bbe..38b4ab0 100644
@@ -12,7 +12,7 @@ SECTION = "x11"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://docs/license.html;md5=03ccdc4c379c4289aecfb8892c546f67"
 
-INC_PR = "r0"
+INC_PR = "r1"
 PE = "2"
 
 
@@ -21,7 +21,7 @@ LIB_DEPS = "virtual/libx11 libxext libxxf86vm libxdamage libxfixes libxml2-nativ
 
 DEPENDS = "makedepend-native flex-native bison-native ${PROTO_DEPS} ${LIB_DEPS}"
 
-PROVIDES = "virtual/libgl"
+PROVIDES = "virtual/libgl virtual/libgles1 virtual/libgles2"
 
 # for mesa-dri and mesa-xlib
 FILESEXTRAPATHS_append := "${THISDIR}/mesa:"
@@ -46,10 +46,14 @@ PACKAGES =+ "libegl libegl-dev libegl-dbg \
              libgl libgl-dev \
              libglapi libglapi-dev \
              libgbm libgbm-dev \
+             libgles1 libgles1-dev \
+             libgles2 libgles2-dev \
             "
 
 FILES_libegl = "${libdir}/libEGL.so.* ${libdir}/egl/*.so"
 FILES_libgbm = "${libdir}/libgbm.so.*"
+FILES_libgles1 = "${libdir}/libGLESv1*.so.*"
+FILES_libgles2 = "${libdir}/libGLESv2.so.*"
 FILES_libgl = "${libdir}/libGL.so.*"
 FILES_libglapi = "${libdir}/libglapi.so.*"
 FILES_libglu = "${libdir}/libGLU.so.*"
@@ -59,6 +63,8 @@ FILES_libegl-dev = "${libdir}/libEGL.* ${includedir}/EGL"
 FILES_libgbm-dev = "${libdir}/libgbm* ${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h"
 FILES_libgl-dev = "${libdir}/libGL.* ${includedir}/GL ${libdir}/pkgconfig/gl.pc"
 FILES_libglapi-dev = "${libdir}/libglapi.*"
+FILES_libgles1-dev = "${libdir}/libGLESv1*.* ${includedir}/GLES ${libdir}/pkgconfig/glesv1*.pc"
+FILES_libgles2-dev = "${libdir}/libGLESv2.* ${includedir}/GLES2 ${libdir}/pkgconfig/glesv2.pc"
 FILES_libglu-dev = "${libdir}/libGLU.* ${includedir}/GL/glu*.h ${libdir}/pkgconfig/glu.pc"
 FILES_libosmesa-dev = "${libdir}/libOSMesa.* ${includedir}/osmesa.h"
 
meta/recipes-graphics/mesa/mesa-dri.inc +1 -0
index f8f1fff..ab4487f 100644
@@ -10,6 +10,7 @@ DRIDRIVERS_append_x86-64 = ",i915,i965"
 
 EXTRA_OECONF += "--disable-gallium --without-gallium-drivers"
 EXTRA_OECONF += "--enable-dri --with-dri-drivers=${DRIDRIVERS}"
+EXTRA_OECONF += "--enable-gles1 --enable-gles2"
 EXTRA_OECONF += "--disable-egl --enable-gbm"
 
 python populate_packages_prepend() {
Signature · 1 line
1.7.10
#9 lore raw

PATCH v3 9/11 mesa-demos: fix GLES2 build

In reply to Ross Burton
---
 meta/recipes-graphics/mesa/mesa-demos/gles2-info.patch |   15 +++++++++++++++
 meta/recipes-graphics/mesa/mesa-demos_8.0.1.bb         |    5 +++--
 2 files changed, 18 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-graphics/mesa/mesa-demos/gles2-info.patch
meta/recipes-graphics/mesa/mesa-demos/gles2-info.patch new file +15 -0
new file mode 100644
index 0000000..84a6fd6
@@ -0,0 +1,15 @@
+Index: mesa-demos-8.0.1/src/egl/opengles2/es2_info.c
+===================================================================
+--- mesa-demos-8.0.1.orig/src/egl/opengles2/es2_info.c	2010-07-07 18:57:15.000000000 +0100
++++ mesa-demos-8.0.1/src/egl/opengles2/es2_info.c	2012-08-01 13:14:59.000104115 +0100
+@@ -18,8 +18,8 @@
+ #include <X11/Xlib.h>
+ #include <X11/Xutil.h>
+ #include <X11/keysym.h>
+-#include <GLES/gl.h>
+-#include <GLES/glext.h>
++#include <GLES2/gl2.h>
++#include <GLES2/gl2ext.h>
+ #include <EGL/egl.h>
+ 
+ 
meta/recipes-graphics/mesa/mesa-demos_8.0.1.bb +3 -2
index bfc62c5..1d16bfc 100644
@@ -11,10 +11,11 @@ LIC_FILES_CHKSUM = "file://src/xdemos/glxgears.c;beginline=1;endline=20;md5=9142
 
 DEPENDS = "virtual/libx11 virtual/libgl glew"
 
-PR = "r2"
+PR = "r3"
 
 SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/demos/${PV}/${BPN}-${PV}.tar.bz2 \
-	file://dso_linking_change_build_fix.patch"
+	file://dso_linking_change_build_fix.patch \
+	file://gles2-info.patch"
 
 inherit autotools pkgconfig
 
Signature · 1 line
1.7.10
#10 lore raw

PATCH v3 10/11 mesa: respect x11 DISTRO_FEATURE

In reply to Ross Burton

Patch originally by Damien Lespiau <[email protected]>.

---
 meta/recipes-graphics/mesa/mesa-8.0.4.inc          |    1 +
 meta/recipes-graphics/mesa/mesa-common.inc         |   14 +++++-----
 meta/recipes-graphics/mesa/mesa-git.inc            |    2 ++
 ...-gross-hack-to-prevent-from-install-libgl.patch |   29 ++++++++++++++++++++
 4 files changed, 39 insertions(+), 7 deletions(-)
 create mode 100644 meta/recipes-graphics/mesa/mesa/0004-gross-hack-to-prevent-from-install-libgl.patch
meta/recipes-graphics/mesa/mesa-8.0.4.inc +1 -0
index d9d17bb..9afb35d 100644
@@ -5,6 +5,7 @@ SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/MesaLib-${PV}.tar.bz2 \
            file://0002-cross-compile.patch \
            file://0003-fix-for-x32.patch \
            "
+SRC_URI += "${@base_contains('DISTRO_FEATURES', 'x11', '', 'file://0004-gross-hack-to-prevent-from-install-libgl.patch', d)}"
 
 S = "${WORKDIR}/Mesa-${PV}"
 
meta/recipes-graphics/mesa/mesa-common.inc +7 -7
index 38b4ab0..77107ab 100644
@@ -12,14 +12,10 @@ SECTION = "x11"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://docs/license.html;md5=03ccdc4c379c4289aecfb8892c546f67"
 
-INC_PR = "r1"
+INC_PR = "r2"
 PE = "2"
 
-
-PROTO_DEPS = "xf86driproto glproto"
-LIB_DEPS = "virtual/libx11 libxext libxxf86vm libxdamage libxfixes libxml2-native"
-
-DEPENDS = "makedepend-native flex-native bison-native ${PROTO_DEPS} ${LIB_DEPS}"
+DEPENDS = "libxml2-native makedepend-native flex-native bison-native"
 
 PROVIDES = "virtual/libgl virtual/libgles1 virtual/libgles2"
 
@@ -31,9 +27,13 @@ inherit autotools pkgconfig pythonnative
 EXTRA_OECONF = "--enable-glu \
                 --disable-glw \
                 --disable-glut \
-                --enable-glx-tls \
                 --enable-shared-glapi"
 
+PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
+
+X11_DEPS = "xf86driproto glproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes"
+PACKAGECONFIG[x11] = "--enable-glx-tls,--disable-glx,${X11_DEPS}"
+
 # Multiple virtual/gl providers being built breaks staging
 EXCLUDE_FROM_WORLD = "1"
 
meta/recipes-graphics/mesa/mesa-git.inc +2 -0
index 32b1d96..7910eb6 100644
@@ -11,6 +11,8 @@ SRC_URI = "git://anongit.freedesktop.org/git/mesa/mesa;protocol=git \
            file://0002-cross-compile.patch \
            file://0003-fix-for-x32.patch \
            "
+SRC_URI += "${@base_contains('DISTRO_FEATURES', 'x11', '', 'file://0004-gross-hack-to-prevent-from-install-libgl.patch', d)}"
+
 S = "${WORKDIR}/git"
 
 do_configure_prepend() {
meta/recipes-graphics/mesa/mesa/0004-gross-hack-to-prevent-from-install-libgl.patch new file +29 -0
new file mode 100644
index 0000000..cf9dee2
@@ -0,0 +1,29 @@
+gross hack to prevent from install libgl
+
+This patch is not suitable for upstream. This is only needed for the 8.0.x
+branch, master (8.1.x) has a largely different build system (using automake)
+and does not need it. It is fully expected to drop the patch with the next bump
+to a stable version based on 8.1.x.
+
+Upstream-Status: Inappropriate
+
+---
+ src/mesa/Makefile |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/mesa/Makefile b/src/mesa/Makefile
+index 0e15d61..a0a2cb5 100644
+--- a/src/mesa/Makefile
++++ b/src/mesa/Makefile
+@@ -166,7 +166,7 @@ install: default $(DRICORE_INSTALL_TARGET)
+ 	            else \
+ 	              $(MAKE) install-osmesa || exit 1 ; \
+ 	            fi ;; \
+-	    dri)    $(MAKE) install-libgl install-dri || exit 1 ;; \
++	    dri)    $(MAKE) install-dri || exit 1 ;; \
+ 	    *)      $(MAKE) install-libgl || exit 1 ;; \
+ 	  esac ; \
+ 	done
+-- 
+1.7.10.4
+
Signature · 1 line
1.7.10
#11 lore raw

PATCH v3 11/11 mesa: enable EGL, with DRM and X11 platforms

In reply to Ross Burton

Patch originally by Damien Lespiau <[email protected]>.

---
 meta/recipes-graphics/mesa/mesa-common.inc |    7 ++++---
 meta/recipes-graphics/mesa/mesa-dri.inc    |    7 ++++++-
 2 files changed, 10 insertions(+), 4 deletions(-)
meta/recipes-graphics/mesa/mesa-common.inc +4 -3
index 77107ab..b0d7a9e 100644
@@ -17,7 +17,7 @@ PE = "2"
 
 DEPENDS = "libxml2-native makedepend-native flex-native bison-native"
 
-PROVIDES = "virtual/libgl virtual/libgles1 virtual/libgles2"
+PROVIDES = "virtual/libgl virtual/libgles1 virtual/libgles2 virtual/egl"
 
 # for mesa-dri and mesa-xlib
 FILESEXTRAPATHS_append := "${THISDIR}/mesa:"
@@ -29,7 +29,8 @@ EXTRA_OECONF = "--enable-glu \
                 --disable-glut \
                 --enable-shared-glapi"
 
-PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
+PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
+                   ${@base_contains('DISTRO_FEATURES', 'egl', 'egl', '', d)}"
 
 X11_DEPS = "xf86driproto glproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes"
 PACKAGECONFIG[x11] = "--enable-glx-tls,--disable-glx,${X11_DEPS}"
@@ -59,7 +60,7 @@ FILES_libglapi = "${libdir}/libglapi.so.*"
 FILES_libglu = "${libdir}/libGLU.so.*"
 FILES_libosmesa = "${libdir}/libOSMesa.so.*"
 
-FILES_libegl-dev = "${libdir}/libEGL.* ${includedir}/EGL"
+FILES_libegl-dev = "${libdir}/libEGL.* ${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc"
 FILES_libgbm-dev = "${libdir}/libgbm* ${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h"
 FILES_libgl-dev = "${libdir}/libGL.* ${includedir}/GL ${libdir}/pkgconfig/gl.pc"
 FILES_libglapi-dev = "${libdir}/libglapi.*"
meta/recipes-graphics/mesa/mesa-dri.inc +6 -1
index ab4487f..35d17a4 100644
@@ -8,10 +8,15 @@ DRIDRIVERS = "swrast"
 DRIDRIVERS_append_x86 = ",i915,i965"
 DRIDRIVERS_append_x86-64 = ",i915,i965"
 
+EGL_PLATFORMS  = "drm"
+EGL_PLATFORMS .="${@base_contains('DISTRO_FEATURES', 'x11', ',x11', '', d)}"
+
 EXTRA_OECONF += "--disable-gallium --without-gallium-drivers"
 EXTRA_OECONF += "--enable-dri --with-dri-drivers=${DRIDRIVERS}"
 EXTRA_OECONF += "--enable-gles1 --enable-gles2"
-EXTRA_OECONF += "--disable-egl --enable-gbm"
+EXTRA_OECONF += "--enable-gbm"
+
+PACKAGECONFIG[egl] = "--enable-egl --with-egl-platforms=${EGL_PLATFORMS}", "--disable-egl"
 
 python populate_packages_prepend() {
     dri_drivers_root = os.path.join(d.getVar('libdir', True), "dri")
Signature · 1 line
1.7.10
#12 lore raw
In reply to Ross Burton
Quoted 6 lines · Ross Burton

Re-arranged and fixed up some problems.

The following changes since commit 62d42fe3cfa575cb97b484ccf7b2e9a25cc50770:

tiny-init: Setup /dev/ptmx in init (2012-08-01 23:11:18 +0100)

Quoted 7 lines

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib ross/mesa

for you to fetch changes up to 5de29e150a720ccb8749362cfe5fb56f234fb385:

mesa: enable EGL, with DRM and X11 platforms (2012-08-02 17:43:18 +0100)

I haven't even build tested it yet, but looks good to me, thanks for implementing those comments.

Cheers,

Quoted 108 lines

----------------------------------------------------------------
Damien Lespiau (2):
mesa: Update to 8.0.4 (latest stable version)
mesa: Use 'require' instead of 'include'

Ross Burton (9):
mesa: no need to depend on python-native, the class does that
mesa: format the packages list nicely
mesa: move glu.pc to libglu-dev
mesa: add --enable-shared-glapi, and package it in libglapi
mesa: enable the Graphic Buffer Manager library
mesa: enable GLES v1 and v2
mesa-demos: fix GLES2 build
mesa: respect x11 DISTRO_FEATURE
mesa: enable EGL, with DRM and X11 platforms

 .../mesa/{mesa-7.11.inc => mesa-8.0.4.inc}         |   14 +++---
 meta/recipes-graphics/mesa/mesa-common.inc         |   43 +++++++++++-----
 .../mesa/mesa-demos/gles2-info.patch               |   15 ++++++
 meta/recipes-graphics/mesa/mesa-demos_8.0.1.bb     |    5 +-
 ...ative_7.11.bb => mesa-dri-glsl-native_8.0.4.bb} |    4 +-
 meta/recipes-graphics/mesa/mesa-dri.inc            |   12 ++++-
 meta/recipes-graphics/mesa/mesa-dri_7.11.bb        |    4 --
 meta/recipes-graphics/mesa/mesa-dri_8.0.4.bb       |    4 ++
 meta/recipes-graphics/mesa/mesa-dri_git.bb         |    6 +--
 meta/recipes-graphics/mesa/mesa-git.inc            |   11 +++--
 meta/recipes-graphics/mesa/mesa-xlib_7.11.bb       |    5 --
 meta/recipes-graphics/mesa/mesa-xlib_8.0.4.bb      |    5 ++
 meta/recipes-graphics/mesa/mesa-xlib_git.bb        |    6 +--
 .../mesa/mesa/0001-Compile-with-uclibc.patch       |   52 ++++++++++++++++++++
 ...ossfix-mklib.patch => 0002-cross-compile.patch} |   39 ++++++++++++---
 ...sa_fix_for_x32.patch => 0003-fix-for-x32.patch} |   30 +++++++----
 ...-gross-hack-to-prevent-from-install-libgl.patch |   29 +++++++++++
 meta/recipes-graphics/mesa/mesa/crossfix.patch     |   18 -------
 meta/recipes-graphics/mesa/mesa/uclibc.patch       |   42 ----------------
 19 files changed, 222 insertions(+), 122 deletions(-)
 rename meta/recipes-graphics/mesa/{mesa-7.11.inc => mesa-8.0.4.inc} (60%)
 create mode 100644 meta/recipes-graphics/mesa/mesa-demos/gles2-info.patch
 rename meta/recipes-graphics/mesa/{mesa-dri-glsl-native_7.11.bb => mesa-dri-glsl-native_8.0.4.bb} (84%)
 delete mode 100644 meta/recipes-graphics/mesa/mesa-dri_7.11.bb
 create mode 100644 meta/recipes-graphics/mesa/mesa-dri_8.0.4.bb
 delete mode 100644 meta/recipes-graphics/mesa/mesa-xlib_7.11.bb
 create mode 100644 meta/recipes-graphics/mesa/mesa-xlib_8.0.4.bb
 create mode 100644 meta/recipes-graphics/mesa/mesa/0001-Compile-with-uclibc.patch
 rename meta/recipes-graphics/mesa/mesa/{crossfix-mklib.patch => 0002-cross-compile.patch} (68%)
 rename meta/recipes-graphics/mesa/mesa/{mesa_fix_for_x32.patch => 0003-fix-for-x32.patch} (59%)
 create mode 100644 meta/recipes-graphics/mesa/mesa/0004-gross-hack-to-prevent-from-install-libgl.patch
 delete mode 100644 meta/recipes-graphics/mesa/mesa/crossfix.patch
 delete mode 100644 meta/recipes-graphics/mesa/mesa/uclibc.patch

Damien Lespiau (2):
mesa: Update to 8.0.4 (latest stable version)
mesa: Use 'require' instead of 'include'

Ross Burton (9):
mesa: no need to depend on python-native, the class does that
mesa: format the packages list nicely
mesa: move glu.pc to libglu-dev
mesa: add --enable-shared-glapi, and package it in libglapi
mesa: enable the Graphic Buffer Manager library
mesa: enable GLES v1 and v2
mesa-demos: fix GLES2 build
mesa: respect x11 DISTRO_FEATURE
mesa: enable EGL, with DRM and X11 platforms

 .../mesa/{mesa-7.11.inc => mesa-8.0.4.inc}         |   14 +++---
 meta/recipes-graphics/mesa/mesa-common.inc         |   43 +++++++++++-----
 .../mesa/mesa-demos/gles2-info.patch               |   15 ++++++
 meta/recipes-graphics/mesa/mesa-demos_8.0.1.bb     |    5 +-
 ...ative_7.11.bb => mesa-dri-glsl-native_8.0.4.bb} |    4 +-
 meta/recipes-graphics/mesa/mesa-dri.inc            |   12 ++++-
 meta/recipes-graphics/mesa/mesa-dri_7.11.bb        |    4 --
 meta/recipes-graphics/mesa/mesa-dri_8.0.4.bb       |    4 ++
 meta/recipes-graphics/mesa/mesa-dri_git.bb         |    6 +--
 meta/recipes-graphics/mesa/mesa-git.inc            |   11 +++--
 meta/recipes-graphics/mesa/mesa-xlib_7.11.bb       |    5 --
 meta/recipes-graphics/mesa/mesa-xlib_8.0.4.bb      |    5 ++
 meta/recipes-graphics/mesa/mesa-xlib_git.bb        |    6 +--
 .../mesa/mesa/0001-Compile-with-uclibc.patch       |   52 ++++++++++++++++++++
 ...ossfix-mklib.patch => 0002-cross-compile.patch} |   39 ++++++++++++---
 ...sa_fix_for_x32.patch => 0003-fix-for-x32.patch} |   30 +++++++----
 ...-gross-hack-to-prevent-from-install-libgl.patch |   29 +++++++++++
 meta/recipes-graphics/mesa/mesa/crossfix.patch     |   18 -------
 meta/recipes-graphics/mesa/mesa/uclibc.patch       |   42 ----------------
 19 files changed, 222 insertions(+), 122 deletions(-)
 rename meta/recipes-graphics/mesa/{mesa-7.11.inc => mesa-8.0.4.inc} (60%)
 create mode 100644 meta/recipes-graphics/mesa/mesa-demos/gles2-info.patch
 rename meta/recipes-graphics/mesa/{mesa-dri-glsl-native_7.11.bb => mesa-dri-glsl-native_8.0.4.bb} (84%)
 delete mode 100644 meta/recipes-graphics/mesa/mesa-dri_7.11.bb
 create mode 100644 meta/recipes-graphics/mesa/mesa-dri_8.0.4.bb
 delete mode 100644 meta/recipes-graphics/mesa/mesa-xlib_7.11.bb
 create mode 100644 meta/recipes-graphics/mesa/mesa-xlib_8.0.4.bb
 create mode 100644 meta/recipes-graphics/mesa/mesa/0001-Compile-with-uclibc.patch
 rename meta/recipes-graphics/mesa/mesa/{crossfix-mklib.patch => 0002-cross-compile.patch} (68%)
 rename meta/recipes-graphics/mesa/mesa/{mesa_fix_for_x32.patch => 0003-fix-for-x32.patch} (59%)
 create mode 100644 meta/recipes-graphics/mesa/mesa/0004-gross-hack-to-prevent-from-install-libgl.patch
 delete mode 100644 meta/recipes-graphics/mesa/mesa/crossfix.patch
 delete mode 100644 meta/recipes-graphics/mesa/mesa/uclibc.patch
Signature · 7 lines
1.7.10


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#13 lore raw

Damnit, some PR bumps disappeared in the conflicting merges. Pretend they are all there and I'll fix the branch.

Ross

#14 lore raw
In reply to Ross Burton

Op 2 aug. 2012, om 18:48 heeft Ross Burton <[email protected]> het volgende geschreven:

Quoted 1 line

Re-arranged and fixed up some problems.

This will still break every platform with a binary libegl and libgles.

Quoted 120 lines

The following changes since commit 62d42fe3cfa575cb97b484ccf7b2e9a25cc50770:

tiny-init: Setup /dev/ptmx in init (2012-08-01 23:11:18 +0100)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib ross/mesa

for you to fetch changes up to 5de29e150a720ccb8749362cfe5fb56f234fb385:

mesa: enable EGL, with DRM and X11 platforms (2012-08-02 17:43:18 +0100)

----------------------------------------------------------------
Damien Lespiau (2):
mesa: Update to 8.0.4 (latest stable version)
mesa: Use 'require' instead of 'include'

Ross Burton (9):
mesa: no need to depend on python-native, the class does that
mesa: format the packages list nicely
mesa: move glu.pc to libglu-dev
mesa: add --enable-shared-glapi, and package it in libglapi
mesa: enable the Graphic Buffer Manager library
mesa: enable GLES v1 and v2
mesa-demos: fix GLES2 build
mesa: respect x11 DISTRO_FEATURE
mesa: enable EGL, with DRM and X11 platforms

.../mesa/{mesa-7.11.inc => mesa-8.0.4.inc}         |   14 +++---
meta/recipes-graphics/mesa/mesa-common.inc         |   43 +++++++++++-----
.../mesa/mesa-demos/gles2-info.patch               |   15 ++++++
meta/recipes-graphics/mesa/mesa-demos_8.0.1.bb     |    5 +-
...ative_7.11.bb => mesa-dri-glsl-native_8.0.4.bb} |    4 +-
meta/recipes-graphics/mesa/mesa-dri.inc            |   12 ++++-
meta/recipes-graphics/mesa/mesa-dri_7.11.bb        |    4 --
meta/recipes-graphics/mesa/mesa-dri_8.0.4.bb       |    4 ++
meta/recipes-graphics/mesa/mesa-dri_git.bb         |    6 +--
meta/recipes-graphics/mesa/mesa-git.inc            |   11 +++--
meta/recipes-graphics/mesa/mesa-xlib_7.11.bb       |    5 --
meta/recipes-graphics/mesa/mesa-xlib_8.0.4.bb      |    5 ++
meta/recipes-graphics/mesa/mesa-xlib_git.bb        |    6 +--
.../mesa/mesa/0001-Compile-with-uclibc.patch       |   52 ++++++++++++++++++++
...ossfix-mklib.patch => 0002-cross-compile.patch} |   39 ++++++++++++---
...sa_fix_for_x32.patch => 0003-fix-for-x32.patch} |   30 +++++++----
...-gross-hack-to-prevent-from-install-libgl.patch |   29 +++++++++++
meta/recipes-graphics/mesa/mesa/crossfix.patch     |   18 -------
meta/recipes-graphics/mesa/mesa/uclibc.patch       |   42 ----------------
19 files changed, 222 insertions(+), 122 deletions(-)

rename meta/recipes-graphics/mesa/{mesa-7.11.inc => mesa-8.0.4.inc} (60%)
create mode 100644 meta/recipes-graphics/mesa/mesa-demos/gles2-info.patch
rename meta/recipes-graphics/mesa/{mesa-dri-glsl-native_7.11.bb => mesa-dri-glsl-native_8.0.4.bb} (84%) delete mode 100644 meta/recipes-graphics/mesa/mesa-dri_7.11.bb
create mode 100644 meta/recipes-graphics/mesa/mesa-dri_8.0.4.bb
delete mode 100644 meta/recipes-graphics/mesa/mesa-xlib_7.11.bb
create mode 100644 meta/recipes-graphics/mesa/mesa-xlib_8.0.4.bb
create mode 100644 meta/recipes-graphics/mesa/mesa/0001-Compile-with-uclibc.patch rename meta/recipes-graphics/mesa/mesa/{crossfix-mklib.patch => 0002-cross-compile.patch} (68%) rename meta/recipes-graphics/mesa/mesa/{mesa_fix_for_x32.patch => 0003-fix-for-x32.patch} (59%) create mode 100644 meta/recipes-graphics/mesa/mesa/0004-gross-hack-to-prevent-from-install-libgl.patch delete mode 100644 meta/recipes-graphics/mesa/mesa/crossfix.patch
delete mode 100644 meta/recipes-graphics/mesa/mesa/uclibc.patch

Damien Lespiau (2):
mesa: Update to 8.0.4 (latest stable version)
mesa: Use 'require' instead of 'include'

Ross Burton (9):
mesa: no need to depend on python-native, the class does that
mesa: format the packages list nicely
mesa: move glu.pc to libglu-dev
mesa: add --enable-shared-glapi, and package it in libglapi
mesa: enable the Graphic Buffer Manager library
mesa: enable GLES v1 and v2
mesa-demos: fix GLES2 build
mesa: respect x11 DISTRO_FEATURE
mesa: enable EGL, with DRM and X11 platforms

.../mesa/{mesa-7.11.inc => mesa-8.0.4.inc}         |   14 +++---
meta/recipes-graphics/mesa/mesa-common.inc         |   43 +++++++++++-----
.../mesa/mesa-demos/gles2-info.patch               |   15 ++++++
meta/recipes-graphics/mesa/mesa-demos_8.0.1.bb     |    5 +-
...ative_7.11.bb => mesa-dri-glsl-native_8.0.4.bb} |    4 +-
meta/recipes-graphics/mesa/mesa-dri.inc            |   12 ++++-
meta/recipes-graphics/mesa/mesa-dri_7.11.bb        |    4 --
meta/recipes-graphics/mesa/mesa-dri_8.0.4.bb       |    4 ++
meta/recipes-graphics/mesa/mesa-dri_git.bb         |    6 +--
meta/recipes-graphics/mesa/mesa-git.inc            |   11 +++--
meta/recipes-graphics/mesa/mesa-xlib_7.11.bb       |    5 --
meta/recipes-graphics/mesa/mesa-xlib_8.0.4.bb      |    5 ++
meta/recipes-graphics/mesa/mesa-xlib_git.bb        |    6 +--
.../mesa/mesa/0001-Compile-with-uclibc.patch       |   52 ++++++++++++++++++++
...ossfix-mklib.patch => 0002-cross-compile.patch} |   39 ++++++++++++---
...sa_fix_for_x32.patch => 0003-fix-for-x32.patch} |   30 +++++++----
...-gross-hack-to-prevent-from-install-libgl.patch |   29 +++++++++++
meta/recipes-graphics/mesa/mesa/crossfix.patch     |   18 -------
meta/recipes-graphics/mesa/mesa/uclibc.patch       |   42 ----------------
19 files changed, 222 insertions(+), 122 deletions(-)

rename meta/recipes-graphics/mesa/{mesa-7.11.inc => mesa-8.0.4.inc} (60%)
create mode 100644 meta/recipes-graphics/mesa/mesa-demos/gles2-info.patch
rename meta/recipes-graphics/mesa/{mesa-dri-glsl-native_7.11.bb => mesa-dri-glsl-native_8.0.4.bb} (84%) delete mode 100644 meta/recipes-graphics/mesa/mesa-dri_7.11.bb
create mode 100644 meta/recipes-graphics/mesa/mesa-dri_8.0.4.bb
delete mode 100644 meta/recipes-graphics/mesa/mesa-xlib_7.11.bb
create mode 100644 meta/recipes-graphics/mesa/mesa-xlib_8.0.4.bb
create mode 100644 meta/recipes-graphics/mesa/mesa/0001-Compile-with-uclibc.patch rename meta/recipes-graphics/mesa/mesa/{crossfix-mklib.patch => 0002-cross-compile.patch} (68%) rename meta/recipes-graphics/mesa/mesa/{mesa_fix_for_x32.patch => 0003-fix-for-x32.patch} (59%) create mode 100644 meta/recipes-graphics/mesa/mesa/0004-gross-hack-to-prevent-from-install-libgl.patch delete mode 100644 meta/recipes-graphics/mesa/mesa/crossfix.patch
delete mode 100644 meta/recipes-graphics/mesa/mesa/uclibc.patch

Signature · 7 lines
1.7.10


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
#15 lore raw
Quoted 1 line · Koen Kooi

This will still break every platform with a binary libegl and libgles.

That is true and I'm all ears for suggestions. My best proposal so far is to let a package hint a prefix to the Debian renamer, so these packages get renamed to libmesa-gl, libmesa-egl, etc.

That said I'm very curious how every platform with a binary libgl isn't already broken. If that works for some reason then voila we have a solution, and if they are already broken then we're not breaking it any more than it was already broken.

Ross

#16 lore raw

Op 2 aug. 2012, om 21:03 heeft Ross Burton <[email protected]> het volgende geschreven:

Quoted 6 lines · Koen Kooi
Quoted 1 line

This will still break every platform with a binary libegl and libgles.

That is true and I'm all ears for suggestions. My best proposal so far is to let a package hint a prefix to the Debian renamer, so these packages get renamed to libmesa-gl, libmesa-egl, etc.

That said I'm very curious how every platform with a binary libgl isn't already broken.

libegl and libgles aren't built nowadays, so the problem is avoided. Noone has dared to touch this subject the past 2.5 years: http://cgit.openembedded.org/openembedded/commit/recipes/mesa?id=3d96f8cb61225d515b5cb4fe863f0d50c3ced436

The best solution[1] is to disable egl/gles in the mesa-recipes and add a seperate recipe for them. That way you still get glu and other useful mesa bits needed for gnome/efl/xfce/etc, but you can skip the sysroot/shlib poisoning if needed.

regards,

Koen

[1] The best solution if of course getting sgx support into mesa, but nothing is happening on that front apart from some posturing on the fsf side, no actual code.

#17 lore raw
Quoted 3 lines · Koen Kooi

libegl and libgles aren't built nowadays, so the problem is avoided. Noone has dared to touch this subject the past 2.5 years: http://cgit.openembedded.org/openembedded/commit/recipes/mesa?id=3d96f8cb61225d515b5cb4fe863f0d50c3ced436

The best solution[1] is to disable egl/gles in the mesa-recipes and add a seperate recipe for them. That way you still get glu and other useful mesa bits needed for gnome/efl/xfce/etc, but you can skip the sysroot/shlib poisoning if needed.

After much digging I see that the Beagle PVR drivers only provide gles and egl, which is why you say that the problem was avoided. Of course that's just one specific driver, for example the Cedar Trail EMGD driver does build libgl, libgles and libegl.

If the solution is "put the egl/gles bits in another package" then I'm totally confused as to what the actual problem is. Considering there's numerous libegl libraries for the many variants of PVR on ARM, I'm struggling to understand exactly what is new here.

Can you explain clearly what the problem is, I'm obviously missing something. Once I understand the problem I can help with a solution.

Quoted 1 line

[1] The best solution if of course getting sgx support into mesa, but nothing is happening on that front apart from some posturing on the fsf side, no actual code.

HahahHAHAHAHahha. (wipes tears from eyes) The FSF can posture all they want (wasn't aware they'd done that as the code is clearly closed source), but I can't see Imagination opening all their code any day soon.

Cheers,
Ross

#18 lore raw

Op 3 aug. 2012, om 15:19 heeft Ross Burton <[email protected]> het volgende geschreven:

Quoted 7 lines · Koen Kooi
Quoted 3 lines

libegl and libgles aren't built nowadays, so the problem is avoided. Noone has dared to touch this subject the past 2.5 years: http://cgit.openembedded.org/openembedded/commit/recipes/mesa?id=3d96f8cb61225d515b5cb4fe863f0d50c3ced436

The best solution[1] is to disable egl/gles in the mesa-recipes and add a seperate recipe for them. That way you still get glu and other useful mesa bits needed for gnome/efl/xfce/etc, but you can skip the sysroot/shlib poisoning if needed.

After much digging I see that the Beagle PVR drivers only provide gles and egl, which is why you say that the problem was avoided. Of course that's just one specific driver, for example the Cedar Trail EMGD driver does build libgl, libgles and libegl.

If the solution is "put the egl/gles bits in another package"

Recipe, not package. Big difference :)

Quoted 3 lines

then I'm totally confused as to what the actual problem is. Considering there's numerous libegl libraries for the many variants of PVR on ARM, I'm struggling to understand exactly what is new here.

Can you explain clearly what the problem is, I'm obviously missing something. Once I understand the problem I can help with a solution.

You need mesa for the !egl and !gles libs and evil vendor blob for egl and gles libs. In the emgd case you can get gl from the evil vendor as well. To build e.g. EFL I need mesa for the !egl and !gles bits, to build EFL with gles support I need mesa (again !egl, !gles) in addition to evil vendor blob for egl and gles. We could make this work with MACHINE_FEATURES or something similar, but that would mean that a very large chunk of userspace now becomes machine specific. This is how clutter worked in the past and just look at the fit the canonical/linaro people threw when they started doing 'embedded' and clutter.

To compress the above: you need to build both the mesa and the evil-egl-binary *recipes* for things to work, so the egl bits should be a different recipe, not a subpackage of the mesa recipe. This is all assuming we care abou the binary blobs e.g. TI distributes for 3d support. If you don't, fine, merge this patchset.

Quoted 3 lines
Quoted 1 line

[1] The best solution if of course getting sgx support into mesa, but nothing is happening on that front apart from some posturing on the fsf side, no actual code.

HahahHAHAHAHahha. (wipes tears from eyes) The FSF can posture all they want (wasn't aware they'd done that as the code is clearly closed source), but I can't see Imagination opening all their code any day soon.

It's a reverse engineering effort in which only FSF marketing is involved. Their idea is right, look at the Mali and Adreneo RE work, that's coming along nicely.

#19 lore raw
Quoted 39 lines · Koen Kooi

Op 3 aug. 2012, om 15:19 heeft Ross Burton <[email protected]> het volgende geschreven:

Quoted 2 lines · Koen Kooi
Quoted 1 line

libegl and libgles aren't built nowadays, so the problem is

avoided. Noone has dared to touch this subject the past 2.5 years:
http://cgit.openembedded.org/openembedded/commit/recipes/mesa?id=3d96f8cb61225d515b5cb4fe863f0d50c3ced436

Quoted 2 lines
Quoted 2 lines

The best solution[1] is to disable egl/gles in the mesa-recipes and

add a seperate recipe for them. That way you still get glu and other useful mesa bits needed for gnome/efl/xfce/etc, but you can skip the sysroot/shlib poisoning if needed.

Quoted 1 line

After much digging I see that the Beagle PVR drivers only provide

gles and egl, which is why you say that the problem was avoided. Of course that's just one specific driver, for example the Cedar Trail EMGD driver does build libgl, libgles and libegl.

Quoted 2 lines

If the solution is "put the egl/gles bits in another package"

Recipe, not package. Big difference :)

Quoted 1 line

then I'm totally confused as to what the actual problem is.

Considering there's numerous libegl libraries for the many variants of PVR on ARM, I'm struggling to understand exactly what is new here.

Quoted 2 lines

Can you explain clearly what the problem is, I'm obviously missing

something. Once I understand the problem I can help with a solution.

You need mesa for the !egl and !gles libs and evil vendor blob for egl and gles libs. In the emgd case you can get gl from the evil vendor as well. To build e.g. EFL I need mesa for the !egl and !gles bits, to build EFL with gles support I need mesa (again !egl, !gles) in addition to evil vendor blob for egl and gles.
We could make this work with MACHINE_FEATURES or something similar, but that would mean that a very large chunk of userspace now becomes machine specific. This is how clutter worked in the past and just look at the fit the canonical/linaro people threw when they started doing 'embedded' and clutter.

Quoted 5 lines

To compress the above: you need to build both the mesa and the evil-egl-binary *recipes* for things to work, so the egl bits should be a different recipe, not a subpackage of the mesa recipe. This is all assuming we care abou the binary blobs e.g. TI distributes for 3d support. If you don't, fine, merge this patchset.

Let me test this a little bit more. The binary blobs shipped by TI would be machine specific and would be marked as such in the package feeds? The mesa pieces would be marked as architecture specific and more generic. In feeds, machine specific has priority so on the machines where there is hardware support, the hardware optimised versions would get installed?

If the above isn't the case, can we make it work like that?

Cheers,

Richard

#20 lore raw

Op 6 aug. 2012, om 14:43 heeft Richard Purdie <[email protected]> het volgende geschreven:

Quoted 40 lines · Koen Kooi
Quoted 39 lines

Op 3 aug. 2012, om 15:19 heeft Ross Burton <[email protected]> het volgende geschreven:

Quoted 2 lines · Koen Kooi
Quoted 1 line

libegl and libgles aren't built nowadays, so the problem is

avoided. Noone has dared to touch this subject the past 2.5 years:
http://cgit.openembedded.org/openembedded/commit/recipes/mesa?id=3d96f8cb61225d515b5cb4fe863f0d50c3ced436

Quoted 2 lines
Quoted 2 lines

The best solution[1] is to disable egl/gles in the mesa-recipes and

add a seperate recipe for them. That way you still get glu and other useful mesa bits needed for gnome/efl/xfce/etc, but you can skip the sysroot/shlib poisoning if needed.

Quoted 1 line

After much digging I see that the Beagle PVR drivers only provide

gles and egl, which is why you say that the problem was avoided. Of course that's just one specific driver, for example the Cedar Trail EMGD driver does build libgl, libgles and libegl.

Quoted 2 lines

If the solution is "put the egl/gles bits in another package"

Recipe, not package. Big difference :)

Quoted 1 line

then I'm totally confused as to what the actual problem is.

Considering there's numerous libegl libraries for the many variants of PVR on ARM, I'm struggling to understand exactly what is new here.

Quoted 2 lines

Can you explain clearly what the problem is, I'm obviously missing

something. Once I understand the problem I can help with a solution.

You need mesa for the !egl and !gles libs and evil vendor blob for egl and gles libs. In the emgd case you can get gl from the evil vendor as well. To build e.g. EFL I need mesa for the !egl and !gles bits, to build EFL with gles support I need mesa (again !egl, !gles) in addition to evil vendor blob for egl and gles.
We could make this work with MACHINE_FEATURES or something similar, but that would mean that a very large chunk of userspace now becomes machine specific. This is how clutter worked in the past and just look at the fit the canonical/linaro people threw when they started doing 'embedded' and clutter.

Quoted 8 lines
Quoted 5 lines

To compress the above: you need to build both the mesa and the evil-egl-binary *recipes* for things to work, so the egl bits should be a different recipe, not a subpackage of the mesa recipe. This is all assuming we care abou the binary blobs e.g. TI distributes for 3d support. If you don't, fine, merge this patchset.

Let me test this a little bit more. The binary blobs shipped by TI would be machine specific

They aren't machine specific, they contain multiple blobs to support a wide range of SoCs. But even if they were machine specific it wouldn't work like you want to.

Quoted 5 lines

and would be marked as such in the package feeds?
The mesa pieces would be marked as architecture specific and more generic. In feeds, machine specific has priority so on the machines where there is hardware support, the hardware optimised versions would get installed?

You're assuming all libraries are subpackaged into their own package and renamed identically, they aren't (which is actually a feature in the current situation).

Quoted 1 line

If the above isn't the case, can we make it work like that?

We can't. Even if we could, it would be a giant step backwards for people using the output of the build (see below).

The only solution that keeps the good things of the current situation is to have the following recipes:

1) mesa (does not build libgl or libgles)
2) mesa-gles (only builds libgl+libgles)
3) evil-vendor-blob

And you can specify per SoC something like PREFERRED_PROVIDER_virtual/egl = "mesa-gles" or PREFERRED_PROVIDER_virtual/egl = "evil-vendor-blob".

That will cause problems if you are building for 2 SoCs in the same architecture family that need different gl providers, the shlib code might get a bit upset. I don't have a good solution for that, but we have that problem right now as well.

From the build side we could make it a bit prettier by making all the gl stuff machine specific, but that will be a giant pain in the ass for the end user (distro maintainer, $silicon_vendor customer, $silicon_vendor SDK). If we end up doing it like that, we'll need buy-in from the silicon vendors involved to change the way they distribute their blobs. That is doable, I managed to get the TI blobs changed a few times in the past, but it's a slow process. And everything using GL would suddenly be machine specific, I hope the yocto autobuilder can keep up with that.

Executive summary: ARM SoCs with 3d suck, Intel parts with 3d sucks less. It's a mess in oe-core.

regards,

Koen

#21 lore raw
Quoted 61 lines · Koen Kooi

Op 6 aug. 2012, om 14:43 heeft Richard Purdie <[email protected]> het volgende geschreven:

Quoted 40 lines · Koen Kooi
Quoted 39 lines

Op 3 aug. 2012, om 15:19 heeft Ross Burton <[email protected]> het volgende geschreven:

Quoted 2 lines · Koen Kooi
Quoted 1 line

libegl and libgles aren't built nowadays, so the problem is

avoided. Noone has dared to touch this subject the past 2.5 years:
http://cgit.openembedded.org/openembedded/commit/recipes/mesa?id=3d96f8cb61225d515b5cb4fe863f0d50c3ced436

Quoted 2 lines
Quoted 2 lines

The best solution[1] is to disable egl/gles in the mesa-recipes and

add a seperate recipe for them. That way you still get glu and other useful mesa bits needed for gnome/efl/xfce/etc, but you can skip the sysroot/shlib poisoning if needed.

Quoted 1 line

After much digging I see that the Beagle PVR drivers only provide

gles and egl, which is why you say that the problem was avoided. Of course that's just one specific driver, for example the Cedar Trail EMGD driver does build libgl, libgles and libegl.

Quoted 2 lines

If the solution is "put the egl/gles bits in another package"

Recipe, not package. Big difference :)

Quoted 1 line

then I'm totally confused as to what the actual problem is.

Considering there's numerous libegl libraries for the many variants of PVR on ARM, I'm struggling to understand exactly what is new here.

Quoted 2 lines

Can you explain clearly what the problem is, I'm obviously missing

something. Once I understand the problem I can help with a solution.

You need mesa for the !egl and !gles libs and evil vendor blob for egl and gles libs. In the emgd case you can get gl from the evil vendor as well. To build e.g. EFL I need mesa for the !egl and !gles bits, to build EFL with gles support I need mesa (again !egl, !gles) in addition to evil vendor blob for egl and gles.
We could make this work with MACHINE_FEATURES or something similar, but that would mean that a very large chunk of userspace now becomes machine specific. This is how clutter worked in the past and just look at the fit the canonical/linaro people threw when they started doing 'embedded' and clutter.

Quoted 8 lines
Quoted 5 lines

To compress the above: you need to build both the mesa and the evil-egl-binary *recipes* for things to work, so the egl bits should be a different recipe, not a subpackage of the mesa recipe. This is all assuming we care abou the binary blobs e.g. TI distributes for 3d support. If you don't, fine, merge this patchset.

Let me test this a little bit more. The binary blobs shipped by TI would be machine specific

They aren't machine specific, they contain multiple blobs to support a wide range of SoCs. But even if they were machine specific it wouldn't work like you want to.

Quoted 5 lines

and would be marked as such in the package feeds?
The mesa pieces would be marked as architecture specific and more generic. In feeds, machine specific has priority so on the machines where there is hardware support, the hardware optimised versions would get installed?

Quoted 3 lines

You're assuming all libraries are subpackaged into their own package and renamed identically, they aren't (which is actually a feature in the current situation).

They don't have to be renamed identically, the would have to have RPROVIDES that cover what is needed in some standard namespace.

Quoted 26 lines
Quoted 1 line

If the above isn't the case, can we make it work like that?

We can't. Even if we could, it would be a giant step backwards for people using the output of the build (see below).

The only solution that keeps the good things of the current situation is to have the following recipes:

1) mesa (does not build libgl or libgles)
2) mesa-gles (only builds libgl+libgles)
3) evil-vendor-blob

And you can specify per SoC something like PREFERRED_PROVIDER_virtual/egl = "mesa-gles" or PREFERRED_PROVIDER_virtual/egl = "evil-vendor-blob".

That will cause problems if you are building for 2 SoCs in the same architecture family that need different gl providers, the shlib code might get a bit upset. I don't have a good solution for that, but we have that problem right now as well.

From the build side we could make it a bit prettier by making all the gl stuff machine specific, but that will be a giant pain in the ass for the end user (distro maintainer, $silicon_vendor customer, $silicon_vendor SDK).

Quoted 6 lines

If we end up doing it like that, we'll need buy-in from the silicon
vendors involved to change the way they distribute their blobs. That is doable, I managed to get the TI blobs changed a few times in the past, but it's a slow process.
And everything using GL would suddenly be machine specific, I hope the yocto autobuilder can keep up with that.

Everything does not have to become machine specific if the things in question have known good portable APIs. As I understand it we have GL so we can swap in the binary blobs in place of the generic ones without needing everything to be machine specific.

Quoted 2 lines

Executive summary: ARM SoCs with 3d suck, Intel parts with 3d sucks less. It's a mess in oe-core.

Ok, we need to do something about this mess, period. Its not going to get any better and we need to sort it out. I can't "force" changes in but on the other hand I'm not going to tie the hands of everyone just because the ARM world in particular is a total mess in this area.

As such, I'm likely going to allow architecture overrides in core mesa so for example, IA can enable gles and egl for everyone and cleanup their binary blobs to override them on platforms where it makes sense. I suspect someone will start sending patches to enable a generic arm core and I am going to have a *really* hard time refusing the patches due to any one silicon provider's binary blob issues.

IMO, the evil-vendor-blob recipes need to start generating packages which are machine or platform specific and those platforms need to correctly list those feeds as being compatible, providing a set of standard things which allow replacement of the core generic architecture providers.

How does that sound?

Cheers,

Richard

#22 lore raw

Op 6 aug. 2012, om 16:04 heeft Richard Purdie <[email protected]> het volgende geschreven:

Quoted 107 lines · Koen Kooi
Quoted 61 lines

Op 6 aug. 2012, om 14:43 heeft Richard Purdie <[email protected]> het volgende geschreven:

Quoted 40 lines · Koen Kooi
Quoted 39 lines

Op 3 aug. 2012, om 15:19 heeft Ross Burton <[email protected]> het volgende geschreven:

Quoted 2 lines · Koen Kooi
Quoted 1 line

libegl and libgles aren't built nowadays, so the problem is

avoided. Noone has dared to touch this subject the past 2.5 years:
http://cgit.openembedded.org/openembedded/commit/recipes/mesa?id=3d96f8cb61225d515b5cb4fe863f0d50c3ced436

Quoted 2 lines
Quoted 2 lines

The best solution[1] is to disable egl/gles in the mesa-recipes and

add a seperate recipe for them. That way you still get glu and other useful mesa bits needed for gnome/efl/xfce/etc, but you can skip the sysroot/shlib poisoning if needed.

Quoted 1 line

After much digging I see that the Beagle PVR drivers only provide

gles and egl, which is why you say that the problem was avoided. Of course that's just one specific driver, for example the Cedar Trail EMGD driver does build libgl, libgles and libegl.

Quoted 2 lines

If the solution is "put the egl/gles bits in another package"

Recipe, not package. Big difference :)

Quoted 1 line

then I'm totally confused as to what the actual problem is.

Considering there's numerous libegl libraries for the many variants of PVR on ARM, I'm struggling to understand exactly what is new here.

Quoted 2 lines

Can you explain clearly what the problem is, I'm obviously missing

something. Once I understand the problem I can help with a solution.

You need mesa for the !egl and !gles libs and evil vendor blob for egl and gles libs. In the emgd case you can get gl from the evil vendor as well. To build e.g. EFL I need mesa for the !egl and !gles bits, to build EFL with gles support I need mesa (again !egl, !gles) in addition to evil vendor blob for egl and gles.
We could make this work with MACHINE_FEATURES or something similar, but that would mean that a very large chunk of userspace now becomes machine specific. This is how clutter worked in the past and just look at the fit the canonical/linaro people threw when they started doing 'embedded' and clutter.

Quoted 8 lines
Quoted 5 lines

To compress the above: you need to build both the mesa and the evil-egl-binary *recipes* for things to work, so the egl bits should be a different recipe, not a subpackage of the mesa recipe. This is all assuming we care abou the binary blobs e.g. TI distributes for 3d support. If you don't, fine, merge this patchset.

Let me test this a little bit more. The binary blobs shipped by TI would be machine specific

They aren't machine specific, they contain multiple blobs to support a wide range of SoCs. But even if they were machine specific it wouldn't work like you want to.

Quoted 5 lines

and would be marked as such in the package feeds?
The mesa pieces would be marked as architecture specific and more generic. In feeds, machine specific has priority so on the machines where there is hardware support, the hardware optimised versions would get installed?

Quoted 3 lines

You're assuming all libraries are subpackaged into their own package and renamed identically, they aren't (which is actually a feature in the current situation).

They don't have to be renamed identically, the would have to have RPROVIDES that cover what is needed in some standard namespace.

Quoted 26 lines
Quoted 1 line

If the above isn't the case, can we make it work like that?

We can't. Even if we could, it would be a giant step backwards for people using the output of the build (see below).

The only solution that keeps the good things of the current situation is to have the following recipes:

1) mesa (does not build libgl or libgles)
2) mesa-gles (only builds libgl+libgles)
3) evil-vendor-blob

And you can specify per SoC something like PREFERRED_PROVIDER_virtual/egl = "mesa-gles" or PREFERRED_PROVIDER_virtual/egl = "evil-vendor-blob".

That will cause problems if you are building for 2 SoCs in the same architecture family that need different gl providers, the shlib code might get a bit upset. I don't have a good solution for that, but we have that problem right now as well.

From the build side we could make it a bit prettier by making all the gl stuff machine specific, but that will be a giant pain in the ass for the end user (distro maintainer, $silicon_vendor customer, $silicon_vendor SDK).

Quoted 6 lines

If we end up doing it like that, we'll need buy-in from the silicon vendors involved to change the way they distribute their blobs. That is doable, I managed to get the TI blobs changed a few times in the past, but it's a slow process.
And everything using GL would suddenly be machine specific, I hope the yocto autobuilder can keep up with that.

Everything does not have to become machine specific if the things in question have known good portable APIs. As I understand it we have GL so we can swap in the binary blobs in place of the generic ones without needing everything to be machine specific.

Quoted 7 lines
Quoted 2 lines

Executive summary: ARM SoCs with 3d suck, Intel parts with 3d sucks less. It's a mess in oe-core.

Ok, we need to do something about this mess, period. Its not going to get any better and we need to sort it out. I can't "force" changes in but on the other hand I'm not going to tie the hands of everyone just because the ARM world in particular is a total mess in this area.

I completely agree with that!

Quoted 6 lines

As such, I'm likely going to allow architecture overrides in core mesa so for example, IA can enable gles and egl for everyone and cleanup their binary blobs to override them on platforms where it makes sense. I suspect someone will start sending patches to enable a generic arm core and I am going to have a *really* hard time refusing the patches due to any one silicon provider's binary blob issues.

Every GPU on arm has evil blobs, Mali, Adreno, SGX, etc. The RE efforts for Mali and Adreno are making good progress, though.

Quoted 5 lines

IMO, the evil-vendor-blob recipes need to start generating packages which are machine or platform specific and those platforms need to correctly list those feeds as being compatible, providing a set of standard things which allow replacement of the core generic architecture providers.

There's no such thing as platform specific packages, yet.

Quoted 1 line

How does that sound?

Sounds pretty good.

regards,

Koen

#23 lore raw
In reply to Richard Purdie
Quoted 11 lines · Richard Purdie

Ok, we need to do something about this mess, period. Its not going to get any better and we need to sort it out. I can't "force" changes in but on the other hand I'm not going to tie the hands of everyone just because the ARM world in particular is a total mess in this area.

As such, I'm likely going to allow architecture overrides in core mesa so for example, IA can enable gles and egl for everyone and cleanup their binary blobs to override them on platforms where it makes sense. I suspect someone will start sending patches to enable a generic arm core and I am going to have a *really* hard time refusing the patches due to any one silicon provider's binary blob issues.

It's not obvious to me that this is really an architecture-level problem or that having different Mesa feature sets enabled on different architectures is a positive thing.

I'm also not totally convinced that any insurmountable problem actually exists today with evil vendor blobs. If they install themselves into some directory that isn't /usr/lib and arrange for the dynamic linker to find their libEGL.so (etc) ahead of the Mesa one then it seems like everything should "just work" with today's technology. As you observed, sort of the whole point of the EGL/GL/GLES abstraction is that you have a common API/ABI to write to irrespective of the implementation.

(Realistically, it seems fairly unlikely that there are very many situations where using Mesa libGL on top of a vendor libEGL is going to make much sense. If you have vendor libEGL but not libGL then the chances are you have GLES instead and this is probably what you want to be using.)

So, all in all, I tend to think that we should just apply these patches and then do whatever else is necessary for the evil-binary-vendor stuff to be correctly packageable.

p.

#24 lore raw
In reply to Ross Burton
Quoted 19 lines · Ross Burton

Re-arranged and fixed up some problems.

The following changes since commit 62d42fe3cfa575cb97b484ccf7b2e9a25cc50770:

tiny-init: Setup /dev/ptmx in init (2012-08-01 23:11:18 +0100)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib ross/mesa

for you to fetch changes up to 5de29e150a720ccb8749362cfe5fb56f234fb385:

mesa: enable EGL, with DRM and X11 platforms (2012-08-02 17:43:18 +0100)

----------------------------------------------------------------
Damien Lespiau (2):
mesa: Update to 8.0.4 (latest stable version)
mesa: Use 'require' instead of 'include'

Quoted 6 lines

Ross Burton (9):
mesa: no need to depend on python-native, the class does that
mesa: format the packages list nicely
mesa: move glu.pc to libglu-dev
mesa: add --enable-shared-glapi, and package it in libglapi
mesa: enable the Graphic Buffer Manager library

I've merged the above since I don't think these are the contentious part.

Quoted 4 lines

mesa: enable GLES v1 and v2
mesa-demos: fix GLES2 build
mesa: respect x11 DISTRO_FEATURE
mesa: enable EGL, with DRM and X11 platforms

I've left these for now for more discussion.

Cheers,

Richard