Skip to contentSkip to conversation

Sunxi fixes, improve Mesa3d Support, and add glmark2 benchmark application.

PATCH Superseded Spenser Gilliland 5 participants 24 messages Aug 24, 2013 – Sep 6, 2013 Arm/Allwinner sunXi SoC support

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

cover Sunxi fixes, improve Mesa3d Support, and add glmark2 benchmark application.

This patch series improves Mesa support and adds the glmark2 benchmark.

Spenser Gilliland (6):
libdrm: bump and add experimental ARM framebuffer support
sunxi-mali: bug fixes for pc and init script
sunxi-cedarx: bump to newer version, use armel2 binaries, add demo
mesa3d: reorganize, modularize, and bump to version 9.1.6
libpng12: new package
glmark2: new package

 package/Config.in                                  |   3 +
 package/glmark2/Config.in                          |  49 ++++++
 package/glmark2/glmark2-add-mali-support.patch     | 102 ++++++++++++
 package/glmark2/glmark2-fix-add-GLchar.patch       |  17 ++
 .../glmark2-gl-to-glesv2-on-drm-flavor.patch       |  25 +++
 package/glmark2/glmark2.mk                         |  70 +++++++++
 package/libdrm/Config.in                           |  14 +-
 package/libdrm/libdrm.mk                           |  24 ++-
 package/libpng12/Config.in                         |   8 +
 package/libpng12/libpng12.mk                       |  18 +++
 package/mesa3d/Config.in                           | 172 +++++++++++++++++++++
 package/mesa3d/mesa3d-cross-glsl-compiler.patch    |  41 +++++
 package/mesa3d/mesa3d-gbm-without-dri.patch        |  30 ++++
 package/mesa3d/mesa3d.mk                           | 149 ++++++++++++++++++
 package/opengl/Config.in                           |   3 +
 package/opengl/libegl/libegl.mk                    |   4 +
 package/opengl/libgl/libgl.mk                      |  20 +++
 package/opengl/libgles/libgles.mk                  |   4 +
 package/opengl/libopenvg/libopenvg.mk              |   4 +
 package/sunxi-cedarx/Config.in                     |  10 ++
 package/sunxi-cedarx/sunxi-cedarx.mk               |  26 +++-
 package/sunxi-mali/S80mali                         |   2 +-
 package/sunxi-mali/glesv2.pc                       |   2 +-
 package/x11r7/Config.in                            |   1 -
 package/x11r7/mesa3d/Config.in                     |  15 --
 package/x11r7/mesa3d/mesa3d-uclibc-locale.patch    |  56 -------
 package/x11r7/mesa3d/mesa3d.mk                     |  40 -----
 .../xserver_xorg-server/xserver_xorg-server.mk     |   4 +-
 28 files changed, 767 insertions(+), 146 deletions(-)
 create mode 100644 package/glmark2/Config.in
 create mode 100644 package/glmark2/glmark2-add-mali-support.patch
 create mode 100644 package/glmark2/glmark2-fix-add-GLchar.patch
 create mode 100644 package/glmark2/glmark2-gl-to-glesv2-on-drm-flavor.patch
 create mode 100644 package/glmark2/glmark2.mk
 create mode 100644 package/libpng12/Config.in
 create mode 100644 package/libpng12/libpng12.mk
 create mode 100644 package/mesa3d/Config.in
 create mode 100644 package/mesa3d/mesa3d-cross-glsl-compiler.patch
 create mode 100644 package/mesa3d/mesa3d-gbm-without-dri.patch
 create mode 100644 package/mesa3d/mesa3d.mk
 create mode 100644 package/opengl/libgl/libgl.mk
 delete mode 100644 package/x11r7/mesa3d/Config.in
 delete mode 100644 package/x11r7/mesa3d/mesa3d-uclibc-locale.patch
 delete mode 100644 package/x11r7/mesa3d/mesa3d.mk
Signature · 1 line
1.8.1.2
#1 lore raw

PATCH 1/6 libdrm: bump and add experimental ARM framebuffer support

The newer versions of libdrm have substantially fewer dependencies as drm is moving to be a subsystem for both wayland and Xorg.

---
 package/libdrm/Config.in | 14 +++-----------
 package/libdrm/libdrm.mk | 24 +++++++++---------------
 2 files changed, 12 insertions(+), 26 deletions(-)
package/libdrm/Config.in +3 -11
index 8bf676b..f976ef1 100644
@@ -1,18 +1,10 @@
 config BR2_PACKAGE_LIBDRM
 	bool "libdrm"
+	select BR2_PACKAGE_XLIB_LIBPTHREAD_STUBS
+	select BR2_PACKAGE_LIBATOMIC_OPS
+	select BR2_PACKAGE_XLIB_LIBPCIACCESS if BR2_i386 || BR2_x86_64
 	depends on BR2_PACKAGE_XORG7
 	depends on BR2_LARGEFILE
-	select BR2_PACKAGE_XPROTO_GLPROTO
-	select BR2_PACKAGE_XPROTO_XF86VIDMODEPROTO
-	select BR2_PACKAGE_XLIB_LIBXXF86VM
-	select BR2_PACKAGE_XLIB_LIBXMU
-	select BR2_PACKAGE_XLIB_LIBPCIACCESS
-	select BR2_PACKAGE_XPROTO_DRI2PROTO
-	select BR2_PACKAGE_XLIB_LIBPTHREAD_STUBS
-	# libatomic_ops is only available on a subset of the supported
-	# architectures, and we make the assumption that the intel
-	# driver can only be used on x86 and x86_64 machines.
-	select BR2_PACKAGE_LIBATOMIC_OPS if (BR2_PACKAGE_XDRIVER_XF86_VIDEO_INTEL && (BR2_i386 || BR2_x86_64))
 	help
 	  Direct Rendering Manager
 
package/libdrm/libdrm.mk +9 -15
index d3d2b2d..8388e68 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBDRM_VERSION = 2.4.38
+LIBDRM_VERSION = 2.4.46
 LIBDRM_SOURCE = libdrm-$(LIBDRM_VERSION).tar.bz2
 LIBDRM_SITE = http://dri.freedesktop.org/libdrm/
 LIBDRM_LICENSE = MIT
@@ -12,24 +12,18 @@ LIBDRM_LICENSE = MIT
 LIBDRM_INSTALL_STAGING = YES
 
 LIBDRM_DEPENDENCIES = \
-	xproto_glproto \
-	xproto_xf86vidmodeproto \
-	xlib_libXxf86vm \
-	xlib_libXmu \
-	xlib_libpciaccess \
-	xproto_dri2proto \
 	xlib_libpthread-stubs \
 	host-pkgconf
 
-ifeq ($(BR2_PACKAGE_XDRIVER_XF86_VIDEO_INTEL),y)
-LIBDRM_CONF_OPT += --enable-intel
-LIBDRM_DEPENDENCIES += libatomic_ops
-else
-LIBDRM_CONF_OPT += --disable-intel
-endif
+LIBDRM_CONF_OPT = \
+	--disable-cairo-tests \
+	--disable-manpages
 
-ifneq ($(BR2_PACKAGE_XDRIVER_XF86_VIDEO_ATI),y)
-LIBDRM_CONF_OPT += --disable-radeon
+ifeq ($(BR2_arm),y)
+LIBDRM_CONF_OPT += \
+	--enable-omap-experimental-api \
+	--enable-exynos-experimental-api \
+	--enable-freedreno-experimental-api
 endif
 
 ifeq ($(BR2_PACKAGE_UDEV),y)
Signature · 1 line
1.8.1.2
#2 lore raw

PATCH 1/6 libdrm: bump and add experimental ARM framebuffer support

Quoted 2 lines · Spenser Gilliland

The newer versions of libdrm have substantially fewer dependencies as drm is moving to be a subsystem for both wayland and Xorg.

I guess the remaining XLIB dependencies should then also move out of
the Xorg condition, so that libdrm can move out of it as well...

Regards,
Arnout

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

PATCH 1/6 libdrm: bump and add experimental ARM framebuffer support

In reply to Spenser Gilliland

Dear Spenser Gilliland,

Quoted 14 lines · Spenser Gilliland

The newer versions of libdrm have substantially fewer dependencies as drm is moving to be a subsystem for both wayland and Xorg.

---
 package/libdrm/Config.in | 14 +++-----------
 package/libdrm/libdrm.mk | 24 +++++++++---------------
 2 files changed, 12 insertions(+), 26 deletions(-)
package/libdrm/Config.in +0 -0
index 8bf676b..f976ef1 100644

package/libdrm/Config.in line 4

Quoted 4 lines
package/libdrm/Config.in +2 -0
@@ -1,18 +1,10 @@
 config BR2_PACKAGE_LIBDRM
 	bool "libdrm"
+	select BR2_PACKAGE_XLIB_LIBPTHREAD_STUBS
+	select BR2_PACKAGE_LIBATOMIC_OPS

libatomic_ops is not available on all architectures. In the prevous libdrm code, it was only selected on i386 and x86-64, so it was ok, but if libatomic_ops is now needed in all cases for libdrm, then you need to propagate the libatomic_ops dependencies into libdrm, i.e:

	depends on BR2_arm || BR2_armeb || BR2_i386 || BR2_sparc || BR2_powerpc || BR2_x86_64

package/libdrm/Config.in line 6

Quoted 2 lines
package/libdrm/Config.in +1 -0
+	select BR2_PACKAGE_XLIB_LIBPCIACCESS if BR2_i386 || BR2_x86_64
 	depends on BR2_PACKAGE_XORG7

If libdrm is needed by Wayland, then it sounds strange to require enabling BR2_PACKAGE_XORG7. When I did the Wayland packaging, there are a few X.org packages that I moved out of the BR2_PACKAGE_XORG7 condition, maybe we should do the same for libpciaccess and libpthread-stubs. But ok, this is probably something we can tackle at a later point, I don't want to require you to solve all problems right now :)

Quoted 43 lines
package/libdrm/Config.in +0 -11
 	depends on BR2_LARGEFILE
-	select BR2_PACKAGE_XPROTO_GLPROTO
-	select BR2_PACKAGE_XPROTO_XF86VIDMODEPROTO
-	select BR2_PACKAGE_XLIB_LIBXXF86VM
-	select BR2_PACKAGE_XLIB_LIBXMU
-	select BR2_PACKAGE_XLIB_LIBPCIACCESS
-	select BR2_PACKAGE_XPROTO_DRI2PROTO
-	select BR2_PACKAGE_XLIB_LIBPTHREAD_STUBS
-	# libatomic_ops is only available on a subset of the supported
-	# architectures, and we make the assumption that the intel
-	# driver can only be used on x86 and x86_64 machines.
-	select BR2_PACKAGE_LIBATOMIC_OPS if (BR2_PACKAGE_XDRIVER_XF86_VIDEO_INTEL && (BR2_i386 || BR2_x86_64))
 	help
 	  Direct Rendering Manager
 
package/libdrm/libdrm.mk +1 -9
index d3d2b2d..8388e68 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBDRM_VERSION = 2.4.38
+LIBDRM_VERSION = 2.4.46
 LIBDRM_SOURCE = libdrm-$(LIBDRM_VERSION).tar.bz2
 LIBDRM_SITE = http://dri.freedesktop.org/libdrm/
 LIBDRM_LICENSE = MIT
@@ -12,24 +12,18 @@ LIBDRM_LICENSE = MIT
 LIBDRM_INSTALL_STAGING = YES
 
 LIBDRM_DEPENDENCIES = \
-	xproto_glproto \
-	xproto_xf86vidmodeproto \
-	xlib_libXxf86vm \
-	xlib_libXmu \
-	xlib_libpciaccess \
-	xproto_dri2proto \
 	xlib_libpthread-stubs \
 	host-pkgconf
 
-ifeq ($(BR2_PACKAGE_XDRIVER_XF86_VIDEO_INTEL),y)
-LIBDRM_CONF_OPT += --enable-intel

package/libdrm/libdrm.mk LIBDRM_LICENSE = MIT · line 32

Quoted 10 lines
package/libdrm/libdrm.mk +3 -6
-LIBDRM_DEPENDENCIES += libatomic_ops
-else
-LIBDRM_CONF_OPT += --disable-intel
-endif
+LIBDRM_CONF_OPT = \
+	--disable-cairo-tests \
+	--disable-manpages
 
-ifneq ($(BR2_PACKAGE_XDRIVER_XF86_VIDEO_ATI),y)
-LIBDRM_CONF_OPT += --disable-radeon

So those --enable-intel / --disable-radeon things are no longer needed?

package/libdrm/libdrm.mk LIBDRM_LICENSE = MIT · line 27

Quoted 6 lines
package/libdrm/libdrm.mk +5 -0
+ifeq ($(BR2_arm),y)
+LIBDRM_CONF_OPT += \
+	--enable-omap-experimental-api \
+	--enable-exynos-experimental-api \
+	--enable-freedreno-experimental-api
 endif

It seems strange to me to enable those options as soon as we're on ARM. I think we probably need Config.in sub-options for these.

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#4 lore raw

PATCH 1/6 libdrm: bump and add experimental ARM framebuffer support

Thomas,

Quoted 27 lines · Thomas Petazzoni

Dear Spenser Gilliland,

Quoted 14 lines · Spenser Gilliland

The newer versions of libdrm have substantially fewer dependencies as drm is moving to be a subsystem for both wayland and Xorg.

---
 package/libdrm/Config.in | 14 +++-----------
 package/libdrm/libdrm.mk | 24 +++++++++---------------
 2 files changed, 12 insertions(+), 26 deletions(-)
package/libdrm/Config.in +0 -0
index 8bf676b..f976ef1 100644

package/libdrm/Config.in line 4

Quoted 4 lines
package/libdrm/Config.in +2 -0
@@ -1,18 +1,10 @@
 config BR2_PACKAGE_LIBDRM
      bool "libdrm"
+     select BR2_PACKAGE_XLIB_LIBPTHREAD_STUBS
+     select BR2_PACKAGE_LIBATOMIC_OPS

libatomic_ops is not available on all architectures. In the prevous libdrm code, it was only selected on i386 and x86-64, so it was ok, but if libatomic_ops is now needed in all cases for libdrm, then you need to propagate the libatomic_ops dependencies into libdrm, i.e:

Quoted 1 line
        depends on BR2_arm || BR2_armeb || BR2_i386 || BR2_sparc || BR2_powerpc || BR2_x86_64

It is only needed for x86/x86_64, so we can select the option only when BR2_i386 or BR2_x86_64.

Quoted 10 lines

package/libdrm/Config.in line 6

Quoted 2 lines
package/libdrm/Config.in +1 -0
+     select BR2_PACKAGE_XLIB_LIBPCIACCESS if BR2_i386 || BR2_x86_64
      depends on BR2_PACKAGE_XORG7

If libdrm is needed by Wayland, then it sounds strange to require enabling BR2_PACKAGE_XORG7. When I did the Wayland packaging, there are a few X.org packages that I moved out of the BR2_PACKAGE_XORG7 condition, maybe we should do the same for libpciaccess and libpthread-stubs. But ok, this is probably something we can tackle at a later point, I don't want to require you to solve all problems right now :)

I agree these packages should probably be moved out of xorg, but the BR2_PACKAGE_XORG7 doesn't really do much other than allow access to the libraries.

Quoted 52 lines
Quoted 52 lines
package/libdrm/Config.in +0 -11
      depends on BR2_LARGEFILE
-     select BR2_PACKAGE_XPROTO_GLPROTO
-     select BR2_PACKAGE_XPROTO_XF86VIDMODEPROTO
-     select BR2_PACKAGE_XLIB_LIBXXF86VM
-     select BR2_PACKAGE_XLIB_LIBXMU
-     select BR2_PACKAGE_XLIB_LIBPCIACCESS
-     select BR2_PACKAGE_XPROTO_DRI2PROTO
-     select BR2_PACKAGE_XLIB_LIBPTHREAD_STUBS
-     # libatomic_ops is only available on a subset of the supported
-     # architectures, and we make the assumption that the intel
-     # driver can only be used on x86 and x86_64 machines.
-     select BR2_PACKAGE_LIBATOMIC_OPS if (BR2_PACKAGE_XDRIVER_XF86_VIDEO_INTEL && (BR2_i386 || BR2_x86_64))
      help
        Direct Rendering Manager
 
package/libdrm/libdrm.mk +4 -13
index d3d2b2d..8388e68 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBDRM_VERSION = 2.4.38
+LIBDRM_VERSION = 2.4.46
 LIBDRM_SOURCE = libdrm-$(LIBDRM_VERSION).tar.bz2
 LIBDRM_SITE = http://dri.freedesktop.org/libdrm/
 LIBDRM_LICENSE = MIT
@@ -12,24 +12,18 @@ LIBDRM_LICENSE = MIT
 LIBDRM_INSTALL_STAGING = YES
 
 LIBDRM_DEPENDENCIES = \
-     xproto_glproto \
-     xproto_xf86vidmodeproto \
-     xlib_libXxf86vm \
-     xlib_libXmu \
-     xlib_libpciaccess \
-     xproto_dri2proto \
      xlib_libpthread-stubs \
      host-pkgconf
 
-ifeq ($(BR2_PACKAGE_XDRIVER_XF86_VIDEO_INTEL),y)
-LIBDRM_CONF_OPT += --enable-intel
-LIBDRM_DEPENDENCIES += libatomic_ops
-else
-LIBDRM_CONF_OPT += --disable-intel
-endif
+LIBDRM_CONF_OPT = \
+     --disable-cairo-tests \
+     --disable-manpages
 
Quoted 4 lines

package/libdrm/libdrm.mk LIBDRM_LICENSE = MIT · line 32

Quoted 2 lines
package/libdrm/libdrm.mk +0 -2
-ifneq ($(BR2_PACKAGE_XDRIVER_XF86_VIDEO_ATI),y)
-LIBDRM_CONF_OPT += --disable-radeon

So those --enable-intel / --disable-radeon things are no longer needed?

I'll do some more testing to make sure but I don't believe so.

Quoted 9 lines

package/libdrm/libdrm.mk LIBDRM_LICENSE = MIT · line 27

Quoted 6 lines
package/libdrm/libdrm.mk +5 -0
+ifeq ($(BR2_arm),y)
+LIBDRM_CONF_OPT += \
+     --enable-omap-experimental-api \
+     --enable-exynos-experimental-api \
+     --enable-freedreno-experimental-api
 endif

It seems strange to me to enable those options as soon as we're on ARM. I think we probably need Config.in sub-options for these.

I'll add config options for each driver. I initially tried to avoid this, but more and more I think it's a better solution.

Quoted 6 lines

Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

Thanks,
Spenser

Signature · 3 lines
Spenser Gilliland
Computer Engineer
Doctoral Candidate
#5 lore raw

PATCH 1/6 libdrm: bump and add experimental ARM framebuffer support

Dear Spenser Gilliland,

Quoted 9 lines · Spenser Gilliland
Quoted 6 lines

libatomic_ops is not available on all architectures. In the prevous libdrm code, it was only selected on i386 and x86-64, so it was ok, but if libatomic_ops is now needed in all cases for libdrm, then you need to propagate the libatomic_ops dependencies into libdrm, i.e:

        depends on BR2_arm || BR2_armeb || BR2_i386 || BR2_sparc || BR2_powerpc || BR2_x86_64

It is only needed for x86/x86_64, so we can select the option only when BR2_i386 or BR2_x86_64.

Fine.

Quoted 11 lines
Quoted 10 lines
Quoted 2 lines

+ select BR2_PACKAGE_XLIB_LIBPCIACCESS if BR2_i386 || BR2_x86_64
depends on BR2_PACKAGE_XORG7

If libdrm is needed by Wayland, then it sounds strange to require enabling BR2_PACKAGE_XORG7. When I did the Wayland packaging, there are a few X.org packages that I moved out of the BR2_PACKAGE_XORG7 condition, maybe we should do the same for libpciaccess and libpthread-stubs. But ok, this is probably something we can tackle at a later point, I don't want to require you to solve all problems right now :)

Quoted 3 lines

I agree these packages should probably be moved out of xorg, but the BR2_PACKAGE_XORG7 doesn't really do much other than allow access to the libraries.

That's true, but it means that the user needs to know that the global BR2_PACKAGE_XORG7 option has to be enabled if he wants to build something completely unrelated (say Wayland).

But ok, as I said, let's do this later on.

Quoted 6 lines
Quoted 4 lines

package/libdrm/libdrm.mk LIBDRM_LICENSE = MIT · line 32

Quoted 2 lines
package/libdrm/libdrm.mk +0 -2
-ifneq ($(BR2_PACKAGE_XDRIVER_XF86_VIDEO_ATI),y)
-LIBDRM_CONF_OPT += --disable-radeon

So those --enable-intel / --disable-radeon things are no longer needed?

I'll do some more testing to make sure but I don't believe so.

Ok.

Quoted 10 lines
Quoted 9 lines

package/libdrm/libdrm.mk LIBDRM_LICENSE = MIT · line 27

Quoted 6 lines
package/libdrm/libdrm.mk +5 -0
+ifeq ($(BR2_arm),y)
+LIBDRM_CONF_OPT += \
+     --enable-omap-experimental-api \
+     --enable-exynos-experimental-api \
+     --enable-freedreno-experimental-api
 endif

It seems strange to me to enable those options as soon as we're on ARM. I think we probably need Config.in sub-options for these.

Quoted 2 lines

I'll add config options for each driver. I initially tried to avoid this, but more and more I think it's a better solution.

Excellent, thanks.

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#6 lore raw

PATCH 2/6 sunxi-mali: bug fixes for pc and init script

In reply to Spenser Gilliland

fix bad escape sequences in init script and add correct lib for pc file.

---
 package/sunxi-mali/S80mali   | 2 +-
 package/sunxi-mali/glesv2.pc | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
package/sunxi-mali/S80mali +1 -1
index 6f51cc4..ecfbab9 100644
@@ -5,7 +5,7 @@ install_driver() {
 	OPTS=$2
 
 	modprobe $DRIVER $OPTS
-	maj=$(awk "$$2==\"${DRIVER}\" { print $$1; }" /proc/devices)
+	maj=$(awk "\$2==\"${DRIVER}\" { print \$1; }" /proc/devices)
 
 	rm -f /dev/${DRIVER}
 
package/sunxi-mali/glesv2.pc +1 -1
index 4e112ee..9273678 100644
@@ -7,6 +7,6 @@ Name: glesv2
 Description: ARM Mali implementation of OpenGL ESv2
 Version: 2.0
 Requires:
-Libs: -L${libdir} -lGLESv2 -lGLES_CM -lUMP
+Libs: -L${libdir} -lGLESv2 -lGLESv1_CM -lUMP
 Cflags: -I${includedir}/GLES2
 
Signature · 1 line
1.8.1.2
#7 lore raw

PATCH 2/6 sunxi-mali: bug fixes for pc and init script

Dear Spenser Gilliland,

Quoted 26 lines · Spenser Gilliland

fix bad escape sequences in init script and add correct lib for pc file.

---
 package/sunxi-mali/S80mali   | 2 +-
 package/sunxi-mali/glesv2.pc | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
package/sunxi-mali/S80mali +1 -1
index 6f51cc4..ecfbab9 100644
@@ -5,7 +5,7 @@ install_driver() {
 	OPTS=$2
 
 	modprobe $DRIVER $OPTS
-	maj=$(awk "$$2==\"${DRIVER}\" { print $$1; }" /proc/devices)
+	maj=$(awk "\$2==\"${DRIVER}\" { print \$1; }" /proc/devices)
 
 	rm -f /dev/${DRIVER}
 
package/sunxi-mali/glesv2.pc +0 -0
index 4e112ee..9273678 100644

package/sunxi-mali/glesv2.pc Name: glesv2 · line 12

Quoted 7 lines
package/sunxi-mali/glesv2.pc +1 -1
@@ -7,6 +7,6 @@ Name: glesv2
 Description: ARM Mali implementation of OpenGL ESv2
 Version: 2.0
 Requires:
-Libs: -L${libdir} -lGLESv2 -lGLES_CM -lUMP
+Libs: -L${libdir} -lGLESv2 -lGLESv1_CM -lUMP
 Cflags: -I${includedir}/GLES2
 

I haven't tested this, but it looks ok.

Peter: I believe we can apply this one for 2013.08.

Thanks,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#8 lore raw

PATCH 2/6 sunxi-mali: bug fixes for pc and init script

In reply to Spenser Gilliland
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Spenser" == Spenser Gilliland <[email protected]> writes:

Spenser> fix bad escape sequences in init script and add correct lib Spenser> for pc file.

Spenser> Signed-off-by: Spenser Gilliland <[email protected]>

Committed, thanks.

Signature · 1 line
Bye, Peter Korsgaard
#9 lore raw

PATCH 3/6 sunxi-cedarx: bump to newer version, use armel2 binaries, add demo

In reply to Spenser Gilliland
---
 package/sunxi-cedarx/Config.in       | 10 ++++++++++
 package/sunxi-cedarx/sunxi-cedarx.mk | 26 ++++++++++++++++++++++----
 2 files changed, 32 insertions(+), 4 deletions(-)
package/sunxi-cedarx/Config.in +10 -0
index b280db0..aa520b5 100644
@@ -10,5 +10,15 @@ config BR2_PACKAGE_SUNXI_CEDARX
 	  http://github.com/linux-sunxi/cedarx-libs
 	  http://linux-sunxi.org/CedarX
 
+if BR2_PACKAGE_SUNXI_CEDARX
+
+config BR2_PACKAGE_SUNXI_CEDARX_DEMO
+	bool "install enc_dec_test demo"
+	help
+	  Install a test program which verifies the functionality of the CedarX
+	  libraries
+
+endif
+
 comment "sunxi-cedarx requires an eglibc/glibc based toolchain"
 	depends on !BR2_TOOLCHAIN_USES_GLIBC && BR2_arm
package/sunxi-cedarx/sunxi-cedarx.mk +22 -4
index 07c85d4..bc8ee32 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-SUNXI_CEDARX_VERSION = 74923e55fc
+SUNXI_CEDARX_VERSION = 74c3e9052
 SUNXI_CEDARX_SITE = http://github.com/linux-sunxi/cedarx-libs/tarball/$(SUNXI_CEDARX_VERSION)
 
 SUNXI_CEDARX_INSTALL_STAGING = YES
@@ -14,7 +14,12 @@ SUNXI_CEDARX_CONFIGURE_OPTS = \
 
 ifeq ($(BR2_ARM_EABIHF),y)
 SUNXI_CEDARX_BIN_DIR = $(@D)/libcedarv/linux-armhf
-# libavheap.so is only available on EABIHF
+SUNXI_CEDARX_SAMPLE_LOC = $(SUNXI_CEDARX_BIN_DIR)/sample/ve
+else
+SUNXI_CEDARX_BIN_DIR = $(@D)/libcedarv/linux-armel2
+SUNXI_CEDARX_SAMPLE_LOC = $(SUNXI_CEDARX_BIN_DIR)/sample/output/ve
+endif
+
 define SUNXI_CEDARX_BUILD_AVHEAP
 	$(TARGET_CC) $(TARGET_CFLAGS) \
 		-c $(SUNXI_CEDARX_BIN_DIR)/adapter/avheap/avheap.c \
@@ -25,18 +30,30 @@ define SUNXI_CEDARX_BUILD_AVHEAP
 		-o $(SUNXI_CEDARX_BIN_DIR)/adapter/avheap/libavheap.so \
 		$(SUNXI_CEDARX_BIN_DIR)/adapter/avheap/avheap.o
 endef
+
 define SUNXI_CEDARX_INSTALL_AVHEAP
 	$(INSTALL) -D -m 755 $(SUNXI_CEDARX_BIN_DIR)/adapter/avheap/libavheap.so \
 		$(1)/usr/lib/libavheap.so
 endef
-else
-SUNXI_CEDARX_BIN_DIR = $(@D)/libcedarv/linux-armel
+
+ifeq ($(BR2_PACKAGE_SUNXI_CEDARX_DEMO),y)
+
+define SUNXI_CEDARX_BUILD_DEMO
+	$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(SUNXI_CEDARX_BIN_DIR)/sample
+endef
+
+define SUNXI_CEDARX_INSTALL_DEMO
+	$(INSTALL) -D -m 755 $(SUNXI_CEDARX_SAMPLE_LOC) \
+		$(TARGET_DIR)/usr/bin/ve
+endef
+
 endif
 
 define SUNXI_CEDARX_BUILD_CMDS
 	$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(SUNXI_CEDARX_BIN_DIR) \
 		$(SUNXI_CEDARX_CONFIGURE_OPTS)
 	$(SUNXI_CEDARX_BUILD_AVHEAP)
+	$(SUNXI_CEDARX_BUILD_DEMO)
 endef
 
 define SUNXI_CEDARX_INSTALL_STAGING_CMDS
@@ -54,6 +71,7 @@ define SUNXI_CEDARX_INSTALL_TARGET_CMDS
 	$(INSTALL) -D -m 755 $(SUNXI_CEDARX_BIN_DIR)/libvecore/libvecore.so \
 		$(TARGET_DIR)/usr/lib/libvecore.so
 	$(call SUNXI_CEDARX_INSTALL_AVHEAP, $(TARGET_DIR))
+	$(SUNXI_CEDARX_INSTALL_DEMO)
 endef
 
 $(eval $(generic-package))
Signature · 1 line
1.8.1.2
#10 lore raw

PATCH 4/6 mesa3d: reorganize, modularize, and bump to version 9.1.6

In reply to Spenser Gilliland

move mesa3d out of xorg as it is not really an Xorg component.

---
 package/Config.in                                  |   1 +
 package/mesa3d/Config.in                           | 172 +++++++++++++++++++++
 package/mesa3d/mesa3d-cross-glsl-compiler.patch    |  41 +++++
 package/mesa3d/mesa3d-gbm-without-dri.patch        |  30 ++++
 package/mesa3d/mesa3d.mk                           | 149 ++++++++++++++++++
 package/opengl/Config.in                           |   3 +
 package/opengl/libegl/libegl.mk                    |   4 +
 package/opengl/libgl/libgl.mk                      |  20 +++
 package/opengl/libgles/libgles.mk                  |   4 +
 package/opengl/libopenvg/libopenvg.mk              |   4 +
 package/x11r7/Config.in                            |   1 -
 package/x11r7/mesa3d/Config.in                     |  15 --
 package/x11r7/mesa3d/mesa3d-uclibc-locale.patch    |  56 -------
 package/x11r7/mesa3d/mesa3d.mk                     |  40 -----
 .../xserver_xorg-server/xserver_xorg-server.mk     |   4 +-
 15 files changed, 430 insertions(+), 114 deletions(-)
 create mode 100644 package/mesa3d/Config.in
 create mode 100644 package/mesa3d/mesa3d-cross-glsl-compiler.patch
 create mode 100644 package/mesa3d/mesa3d-gbm-without-dri.patch
 create mode 100644 package/mesa3d/mesa3d.mk
 create mode 100644 package/opengl/libgl/libgl.mk
 delete mode 100644 package/x11r7/mesa3d/Config.in
 delete mode 100644 package/x11r7/mesa3d/mesa3d-uclibc-locale.patch
 delete mode 100644 package/x11r7/mesa3d/mesa3d.mk
package/Config.in +1 -0
index 7069d77..0278885 100644
@@ -273,6 +273,7 @@ source "package/lvm2/Config.in"
 source "package/mdadm/Config.in"
 source "package/media-ctl/Config.in"
 source "package/memtester/Config.in"
+source "package/mesa3d/Config.in"
 source "package/minicom/Config.in"
 source "package/nanocom/Config.in"
 source "package/neard/Config.in"
package/mesa3d/Config.in new file +172 -0

172 lines not on this page · raw message

package/mesa3d/mesa3d-cross-glsl-compiler.patch new file +41 -0

41 lines not on this page · raw message

package/mesa3d/mesa3d-gbm-without-dri.patch new file +30 -0
new file mode 100644
index 0000000..2c417f4
@@ -0,0 +1,30 @@
+Fix build issue when gbm backend is built without dri support.
+
+Signed-off-by: Spenser Gilliland <[email protected]>
+
+---
+Index: mesa3d-9.1.6/src/gbm/main/backend.c
+===================================================================
+--- mesa3d-9.1.6.orig/src/gbm/main/backend.c	2012-11-24 11:57:41.000000000 -0600
++++ mesa3d-9.1.6/src/gbm/main/backend.c	2013-08-16 10:59:58.844753588 -0500
+@@ -36,7 +36,9 @@
+ 
+ #define ARRAY_SIZE(a) (sizeof(a)/sizeof((a)[0]))
+ 
++#ifdef HAVE_DRI
+ extern const struct gbm_backend gbm_dri_backend;
++#endif
+ 
+ struct backend_desc {
+    const char *name;
+@@ -44,7 +46,9 @@
+ };
+ 
+ static const struct backend_desc backends[] = {
+-   { "gbm_dri.so", &gbm_dri_backend },
++#ifdef HAVE_DRI
++	{ "gbm_dri.so", &gbm_dri_backend },
++#endif
+    { "gbm_gallium_drm.so", NULL },
+ };
+ 
package/mesa3d/mesa3d.mk new file +149 -0

149 lines not on this page · raw message

package/opengl/Config.in +3 -0
index 1636807..c705446 100644
@@ -1,3 +1,6 @@
+config BR2_PACKAGE_HAS_OPENGL
+	bool
+
 config BR2_PACKAGE_HAS_OPENGL_EGL
 	bool
 
package/opengl/libegl/libegl.mk +4 -0
index c194b02..2d52fe3 100644
@@ -22,6 +22,10 @@ ifeq ($(BR2_PACKAGE_GPU_VIV_BIN_MX6Q),y)
 LIBEGL_DEPENDENCIES += gpu-viv-bin-mx6q
 endif
 
+ifeq ($(BR2_PACKAGE_MESA3D_EGL),y)
+LIBEGL_DEPENDENCIES += mesa3d
+endif
+
 ifeq ($(LIBEGL_DEPENDENCIES),)
 define LIBEGL_CONFIGURE_CMDS
 	echo "No libEGL implementation selected. Configuration error."
package/opengl/libgl/libgl.mk new file +20 -0
new file mode 100644
index 0000000..4b0d7f2
@@ -0,0 +1,20 @@
+################################################################################
+#
+# libgl
+#
+################################################################################
+
+LIBGL_SOURCE =
+
+ifeq ($(BR2_PACKAGE_MESA_OPENGL),y)
+LIBGL_DEPENDENCIES += mesa3d
+endif
+
+ifeq ($(LIBGL_DEPENDENCIES),)
+define LIBOPENGL_CONFIGURE_CMDS
+	echo "No libOpenGL implementation selected. Configuration error."
+	exit 1
+endef
+endif
+
+$(eval $(generic-package))
package/opengl/libgles/libgles.mk +4 -0
index ec157ac..8e5cef1 100644
@@ -22,6 +22,10 @@ ifeq ($(BR2_PACKAGE_GPU_VIV_BIN_MX6Q),y)
 LIBGLES_DEPENDENCIES += gpu-viv-bin-mx6q
 endif
 
+ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_ES),y)
+LIBGLES_DEPENDENCIES += mesa3d
+endif
+
 ifeq ($(LIBGLES_DEPENDENCIES),)
 define LIBGLES_CONFIGURE_CMDS
 	echo "No libGLES implementation selected. Configuration error."
package/opengl/libopenvg/libopenvg.mk +4 -0
index 3296f63..e897423 100644
@@ -10,6 +10,10 @@ ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
 LIBOPENVG_DEPENDENCIES += rpi-userland
 endif
 
+ifeq ($(BR2_PACKAGE_MESA3D_OPENVG),y)
+LIBOPENVG_DEPENDENCIES += mesa3d
+endif
+
 ifeq ($(LIBOPENVG_DEPENDENCIES),)
 define LIBOPENVG_CONFIGURE_CMDS
 	echo "No libOpenVG implementation selected. Configuration error."
package/x11r7/Config.in +0 -1
index 205079c..d5d6e60 100644
@@ -13,7 +13,6 @@ if BR2_PACKAGE_XORG7
 	endmenu
 	menu "X11R7 Libraries"
 		source package/x11r7/libxcb/Config.in
-		source package/x11r7/mesa3d/Config.in
 		source package/x11r7/xcb-util/Config.in
 		source package/x11r7/xcb-util-image/Config.in
 		source package/x11r7/xcb-util-keysyms/Config.in
package/x11r7/mesa3d/Config.in deleted +0 -15
deleted file mode 100644
index 080f56a..0000000
@@ -1,15 +0,0 @@
-config BR2_PACKAGE_MESA3D
-	bool "Mesa 3D Graphics Library"
-	select BR2_PACKAGE_XPROTO_GLPROTO
-	select BR2_PACKAGE_XLIB_LIBXXF86VM
-	select BR2_PACKAGE_XLIB_LIBXDAMAGE
-	select BR2_PACKAGE_XLIB_LIBXFIXES
-	select BR2_PACKAGE_XPROTO_DRI2PROTO
-	select BR2_PACKAGE_LIBDRM
-	select BR2_PACKAGE_EXPAT
-	select BR2_PACKAGE_HOST_LIBXML2_PYTHON
-	depends on BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR
-	depends on BR2_INSTALL_LIBSTDCPP
-	help
-	  Mesa 3D, an open-source implementation of the OpenGL specification.
-
package/x11r7/mesa3d/mesa3d-uclibc-locale.patch deleted +0 -56

56 lines not on this page · raw message

package/x11r7/mesa3d/mesa3d.mk deleted +0 -40
deleted file mode 100644
index f9d35a9..0000000
@@ -1,40 +0,0 @@
-################################################################################
-#
-# mesa3d
-#
-################################################################################
-
-MESA3D_VERSION = 7.10.3
-MESA3D_SOURCE = MesaLib-$(MESA3D_VERSION).tar.gz
-MESA3D_SITE = ftp://ftp.freedesktop.org/pub/mesa/$(MESA3D_VERSION)
-MESA3D_LICENSE = MIT, SGI, Khronos
-MESA3D_LICENSE_FILES = docs/license.html
-
-MESA3D_AUTORECONF = YES
-MESA3D_INSTALL_STAGING = YES
-
-MESA3D_CONF_OPT = \
-	--disable-egl \
-	--disable-glu \
-	--disable-glw \
-	--disable-glut \
-	--disable-gallium \
-	--with-driver=dri \
-	--with-dri-drivers=swrast \
-	--disable-static
-
-MESA3D_DEPENDENCIES = \
-	xproto_glproto \
-	xlib_libXxf86vm \
-	xlib_libXdamage \
-	xlib_libXfixes \
-	xproto_dri2proto \
-	libdrm \
-	expat \
-	host-xutil_makedepend \
-	host-libxml2 \
-	host-python \
-	host-bison \
-	host-flex
-
-$(eval $(autotools-package))
package/x11r7/xserver_xorg-server/xserver_xorg-server.mk +2 -2
index 4089aab..f5a4db6 100644
@@ -99,7 +99,7 @@ else # modular
 XSERVER_XORG_SERVER_CONF_OPT += --disable-kdrive --disable-xfbdev
 endif
 
-ifeq ($(BR2_PACKAGE_MESA3D),y)
+ifeq ($(BR2_PACKAGE_MESA3D_DRIVER),y)
 XSERVER_XORG_SERVER_DEPENDENCIES += mesa3d xproto_xf86driproto
 else
 XSERVER_XORG_SERVER_CONF_OPT += --disable-dri
@@ -172,7 +172,7 @@ ifneq ($(BR2_PACKAGE_XLIB_LIBDMX),y)
 XSERVER_XORG_SERVER_CONF_OPT += --disable-dmx
 endif
 
-ifeq ($(BR2_PACKAGE_MESA3D),y)
+ifeq ($(BR2_PACKAGE_MESA3D_DRIVER),y)
 XSERVER_XORG_SERVER_CONF_OPT += --enable-glx
 else
 XSERVER_XORG_SERVER_CONF_OPT += --disable-glx
Signature · 1 line
1.8.1.2
#11 lore raw

PATCH 4/6 mesa3d: reorganize, modularize, and bump to version 9.1.6

Op 24-aug.-2013 21:48 schreef "Spenser Gilliland" <[email protected]> het volgende:

Quoted 8 lines

move mesa3d out of xorg as it is not really an Xorg component.

---
 package/Config.in                                  |   1 +
 package/mesa3d/Config.in                           | 172

+++++++++++++++++++++

Quoted 3 lines
 package/mesa3d/mesa3d-cross-glsl-compiler.patch    |  41 +++++
 package/mesa3d/mesa3d-gbm-without-dri.patch        |  30 ++++
 package/mesa3d/mesa3d.mk                           | 149

++++++++++++++++++

Quoted 38 lines
 package/opengl/Config.in                           |   3 +
 package/opengl/libegl/libegl.mk                    |   4 +
 package/opengl/libgl/libgl.mk                      |  20 +++
 package/opengl/libgles/libgles.mk                  |   4 +
 package/opengl/libopenvg/libopenvg.mk              |   4 +
 package/x11r7/Config.in                            |   1 -
 package/x11r7/mesa3d/Config.in                     |  15 --
 package/x11r7/mesa3d/mesa3d-uclibc-locale.patch    |  56 -------
 package/x11r7/mesa3d/mesa3d.mk                     |  40 -----
 .../xserver_xorg-server/xserver_xorg-server.mk     |   4 +-
 15 files changed, 430 insertions(+), 114 deletions(-)
 create mode 100644 package/mesa3d/Config.in
 create mode 100644 package/mesa3d/mesa3d-cross-glsl-compiler.patch
 create mode 100644 package/mesa3d/mesa3d-gbm-without-dri.patch
 create mode 100644 package/mesa3d/mesa3d.mk
 create mode 100644 package/opengl/libgl/libgl.mk
 delete mode 100644 package/x11r7/mesa3d/Config.in
 delete mode 100644 package/x11r7/mesa3d/mesa3d-uclibc-locale.patch
 delete mode 100644 package/x11r7/mesa3d/mesa3d.mk
package/Config.in +1 -0
index 7069d77..0278885 100644
@@ -273,6 +273,7 @@ source "package/lvm2/Config.in"
 source "package/mdadm/Config.in"
 source "package/media-ctl/Config.in"
 source "package/memtester/Config.in"
+source "package/mesa3d/Config.in"
 source "package/minicom/Config.in"
 source "package/nanocom/Config.in"
 source "package/neard/Config.in"
package/mesa3d/Config.in new file +0 -0
new file mode 100644
index 0000000..65d269a

package/mesa3d/Config.in line 6

Quoted 6 lines
package/mesa3d/Config.in new file +6 -0
@@ -0,0 +1,172 @@
+config BR2_PACKAGE_MESA3D
+       bool "Mesa 3D Graphics Library"
+       select BR2_PACKAGE_LIBDRM
+       select BR2_PACKAGE_EXPAT
+       select BR2_PACKAGE_HOST_LIBXML2_PYTHON
+       select BR2_PACKAGE_XPROTO_DRI2_PROTO if

BR2_PACKAGE_XSERVER_XORG_SERVER

package/mesa3d/Config.in line 7

Quoted 1 line
package/mesa3d/Config.in new file +1 -0
+       select BR2_PACKAGE_XPROTO_XF86DRIPROTO if

BR2_PACKAGE_XSERVER_XORG_SERVER

package/mesa3d/Config.in

Quoted 3 lines
package/mesa3d/Config.in new file +3 -0
+       select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XSERVER_XORG_SERVER
+       select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XSERVER_XORG_SERVER
+       select BR2_PACKAGE_XLIB_LIBXDAMAGE if

BR2_PACKAGE_XSERVER_XORG_SERVER

package/mesa3d/Config.in line 11

Quoted 1 line
package/mesa3d/Config.in new file +1 -0
+       select BR2_PACKAGE_XLIB_LIBXFIXES if

BR2_PACKAGE_XSERVER_XORG_SERVER

package/mesa3d/Config.in

Quoted 6 lines
package/mesa3d/Config.in new file +6 -0
+       select BR2_PACKAGE_LIBXCB if BR2_PACKAGE_XSERVER_XORG_SERVER
+       depends on BR2_INSTALL_LIBSTDCPP
+       depends on BR2_LARGEFILE
+       depends on BR2_PACKAGE_XORG7 # libdrm
+       help
+         Mesa 3D, an open-source implementation of the OpenGL

specification.

Quoted 23 lines
package/mesa3d/Config.in new file +23 -0
+
+         http://mesa3d.org
+
+if BR2_PACKAGE_MESA3D
+
+menu "libraries"
+
+config BR2_PACKAGE_MESA3D_GBM
+       depends on BR2_PACKAGE_UDEV
+       bool "gbm support"
+       help
+         Add support for Graphics Buffer Manager.
+
+config BR2_PACKAGE_MESA3D_XVMC
+       bool "xvmc support"
+       help
+         Add support for X Video Motion Compensation.
+
+config BR2_PACKAGE_MESA3D_VDPAU
+       bool "vdpau support"
+       help
+         Add support for Video Decode and Presentation API for Unix.
+

package/mesa3d/Config.in

Quoted 10 lines
package/mesa3d/Config.in new file +10 -0
+endmenu
+
+menu "Drivers"
+
+config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_I915
+       bool "Gallium i915 driver"
+       depends on BR2_i386 || BR2_x86_64
+       select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
+       help
+         Supports intel chips with Gallium. In most cases, the DRI i965

driver

package/mesa3d/Config.in line 51

Quoted 1 line
package/mesa3d/Config.in new file +1 -0
+         should be used as it is better maintined by Intel.

Maintained

Quoted 37 lines
package/mesa3d/Config.in new file +37 -0
+
+config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU
+       bool "Gallium nouveau driver"
+       depends on BR2_i386 || BR2_x86_64
+       select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
+       help
+         Supports all Nvidia GPUs.
+
+config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R300
+       bool "Gallium r300 driver"
+       depends on BR2_i386 || BR2_x86_64
+       select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
+       help
+         Supports the R300, R400, and R500 series of ATI/AMD GPUs.
+
+config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600
+       bool "Gallium r600 driver"
+       depends on BR2_i386 || BR2_x86_64
+       select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
+       help
+         Supports the R600, R700, and R800 series of ATI/AMD GPUs.
+
+config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI
+       bool "Gallium radeonsi driver"
+       depends on BR2_i386 || BR2_x86_64
+       select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
+       help
+         Supports the Radeon HD7000/HD8000/HD9000 series of ATI/AMD GPUs.
+
+config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SVGA
+       bool "Gallium vmware svga driver"
+       select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
+       help
+         This is a virtual GPU driver for VMWare virtual machines.
+
+config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST
+       bool "Gallium swrast driver"

package/mesa3d/Config.in

Quoted 10 lines
package/mesa3d/Config.in new file +10 -0
+       select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
+       help
+         This is a software opengl implementation using the Gallium3D
+         infrastructure.
+
+config BR2_PACKAGE_MESA3D_DRI_DRIVERS_SWRAST
+       bool "DRI swrast driver"
+       select BR2_PACKAGE_MESA3D_DRI_DRIVER
+       help
+         This is a software opengl implementation using the DRI

infrastrucutre.

Infrastructure

package/mesa3d/Config.in

Quoted 7 lines
package/mesa3d/Config.in new file +7 -0
+
+config BR2_PACKAGE_MESA3D_DRI_DRIVERS_I965
+       bool "DRI i965 driver"
+       depends on BR2_i386 || BR2_x86_64
+       select BR2_PACKAGE_MESA3D_DRI_DRIVER
+       help
+         Supports all Intel GPUs.  This version is most supported by

Intel.

Quoted 14 lines
package/mesa3d/Config.in new file +14 -0
+
+config BR2_PACKAGE_MESA3D_DRI_DRIVERS_RADEON
+       bool "DRI radeon driver"
+       depends on BR2_i386 || BR2_x86_64
+       select BR2_PACKAGE_MESA3D_DRI_DRIVER
+       help
+         Legacy Radeon driver for R100 series GPUs.
+
+endmenu
+
+# The following hidden options inform gallium or dri driver selection.
+config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
+       select BR2_PACKAGE_MESA3D_DRIVER
+       bool

package/mesa3d/Config.in

Quoted 10 lines
package/mesa3d/Config.in new file +10 -0
+
+config BR2_PACKAGE_MESA3D_DRI_DRIVER
+       select BR2_PACKAGE_MESA3D_DRIVER
+       bool
+
+config BR2_PACKAGE_MESA3D_DRIVER
+       bool
+
+menu "API Support"
+depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER ||

BR2_PACKAGE_MESA3D_DRI_DRIVER

package/mesa3d/Config.in

Quoted 6 lines
package/mesa3d/Config.in new file +6 -0
+
+config BR2_PACKAGE_MESA3D_OPENGL
+       bool "OpenGL"
+       select BR2_PACKAGE_HAS_OPENGL
+       help
+         Use the Khronos OpenGL API.  This is a desktop computer API and

is not

package/mesa3d/Config.in

Quoted 8 lines
package/mesa3d/Config.in new file +8 -0
+         normally implemented by embedded systems.
+
+config BR2_PACKAGE_MESA3D_EGL
+       bool "EGL"
+       select BR2_PACKAGE_MESA3D_GBM
+       select BR2_PACKAGE_HAS_OPENGL_EGL
+       help
+         Use the Khronos EGL APIs. EGL is a window manger for OpenGL

applications

package/mesa3d/Config.in line 144

Quoted 1 line
package/mesa3d/Config.in new file +1 -0
+         similar to GLX, for X, and WGL, for Windows.

Manager

package/mesa3d/Config.in

Quoted 6 lines
package/mesa3d/Config.in new file +6 -0
+
+ config BR2_PACKAGE_MESA3D_OPENGL_ES
+       bool "OpenGL ES"
+       select BR2_PACKAGE_HAS_OPENGL_ES
+       help
+         Use the Khronos OpenGL ES APIs.  This is commonly used on

embedded

Review

Quoted 23 lines
package/mesa3d/Config.in new file +22 -0
+         systems and represents a subset of the OpenGL API.
+
+config BR2_PACKAGE_MESA3D_OPENVG
+       bool "OpenVG"
+       depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
+       select BR2_PACKAGE_HAS_OPENVG
+       select BR2_PACKAGE_MESA3D_OPENGL_EGL
+       help
+         Use the Khronos OpenVG APIs. This is a 2D API commonly used on
+         embedded systems.
+
+config BR2_PACKAGE_MESA3D_OPENCL
+       bool "OpenCL"
+       depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
+       select BR2_PACKAGE_HAS_OPENCL
+       help
+         Use the Khronos OpenCL APIs. This is a GPU computation language
+         commonly used in GPGPU computing applications.
+
+endmenu
+
+endif
(quoted diff) +0 -0

b/package/mesa3d/mesa3d-cross-glsl-compiler.patch

package/mesa3d/mesa3d-cross-glsl-compiler.patch line 6

Quoted 11 lines

new file mode 100644
index 0000000..1028ea1

package/mesa3d/mesa3d-cross-glsl-compiler.patch new file +6 -0
@@ -0,0 +1,41 @@
+This patch fixes a cross compile issue as described here
+https://bugs.freedesktop.org/show_bug.cgi?id=44618
+
+Signed-off-by: Spenser Gilliland <[email protected]>
+---
+diff --git a/src/glsl/builtin_compiler/Makefile.am

b/src/glsl/builtin_compiler/Makefile.am

package/mesa3d/mesa3d-cross-glsl-compiler.patch

Quoted 13 lines
package/mesa3d/mesa3d-cross-glsl-compiler.patch new file +13 -0
+index e11a17f..8ebe0a2 100644
+--- a/src/glsl/builtin_compiler/Makefile.am
++++ b/src/glsl/builtin_compiler/Makefile.am
+@@ -64,6 +64,8 @@ AM_CXXFLAGS = $(AM_CFLAGS)
+ include ../Makefile.sources
+
+ noinst_PROGRAMS = builtin_compiler
++
++if !CROSS_COMPILING
+ noinst_LTLIBRARIES = libglslcore.la libglcpp.la
+
+ libglcpp_la_SOURCES =                                 \
+@@ -73,6 +75,7 @@ libglcpp_la_SOURCES =
       \

Review

Quoted 23 lines
package/mesa3d/mesa3d-cross-glsl-compiler.patch new file +22 -0
+ libglslcore_la_SOURCES =                              \
+       $(BUILTIN_COMPILER_GENERATED_CXX_FILES)         \
+       $(LIBGLSL_FILES)
++endif
+
+ builtin_compiler_SOURCES = \
+       $(top_srcdir)/src/mesa/main/hash_table.c        \
+@@ -81,4 +84,14 @@ builtin_compiler_SOURCES = \
+       $(top_srcdir)/src/mesa/program/symbol_table.c   \
+       $(BUILTIN_COMPILER_CXX_FILES)                   \
+       $(GLSL_COMPILER_CXX_FILES)
++
++if CROSS_COMPILING
++builtin_compiler_SOURCES += \
++      $(LIBGLCPP_GENERATED_FILES) \
++      $(LIBGLCPP_FILES) \
++      $(BUILTIN_COMPILER_GENERATED_CXX_FILES) \
++      $(LIBGLSL_FILES)
++builtin_compiler_CPPFLAGS = $(AM_CPPFLAGS)
++else
+ builtin_compiler_LDADD = libglslcore.la libglcpp.la
++endif
(quoted diff) +0 -0

b/package/mesa3d/mesa3d-gbm-without-dri.patch

package/mesa3d/mesa3d-gbm-without-dri.patch line 8

Quoted 13 lines

new file mode 100644
index 0000000..2c417f4

package/mesa3d/mesa3d-gbm-without-dri.patch new file +8 -0
@@ -0,0 +1,30 @@
+Fix build issue when gbm backend is built without dri support.
+
+Signed-off-by: Spenser Gilliland <[email protected]>
+
+---
+Index: mesa3d-9.1.6/src/gbm/main/backend.c
+===================================================================
+--- mesa3d-9.1.6.orig/src/gbm/main/backend.c   2012-11-24

11:57:41.000000000 -0600

package/mesa3d/mesa3d-gbm-without-dri.patch line 9

Quoted 1 line
package/mesa3d/mesa3d-gbm-without-dri.patch new file +1 -0
++++ mesa3d-9.1.6/src/gbm/main/backend.c        2013-08-16

10:59:58.844753588 -0500

package/mesa3d/mesa3d.mk

Quoted 28 lines
package/mesa3d/mesa3d-gbm-without-dri.patch new file +21 -0
+@@ -36,7 +36,9 @@
+
+ #define ARRAY_SIZE(a) (sizeof(a)/sizeof((a)[0]))
+
++#ifdef HAVE_DRI
+ extern const struct gbm_backend gbm_dri_backend;
++#endif
+
+ struct backend_desc {
+    const char *name;
+@@ -44,7 +46,9 @@
+ };
+
+ static const struct backend_desc backends[] = {
+-   { "gbm_dri.so", &gbm_dri_backend },
++#ifdef HAVE_DRI
++      { "gbm_dri.so", &gbm_dri_backend },
++#endif
+    { "gbm_gallium_drm.so", NULL },
+ };
+
package/mesa3d/mesa3d.mk new file +0 -0
new file mode 100644
index 0000000..31ebe96
@@ -0,0 +1,149 @@

+################################################################################

package/mesa3d/mesa3d.mk line 4

Quoted 4 lines
package/mesa3d/mesa3d.mk new file +3 -0
+#
+# mesa3d
+#

+################################################################################

Quoted 76 lines
package/mesa3d/mesa3d.mk new file +76 -0
+
+MESA3D_VERSION = 9.1.6
+MESA3D_SOURCE = MesaLib-$(MESA3D_VERSION).tar.gz
+MESA3D_SITE = ftp://ftp.freedesktop.org/pub/mesa/$(MESA3D_VERSION)
+MESA3D_LICENSE = MIT, SGI, Khronos
+MESA3D_LICENSE_FILES = docs/license.html
+
+MESA3D_AUTORECONF = YES
+MESA3D_INSTALL_STAGING = YES
+
+MESA3D_DEPENDENCIES = \
+       libdrm \
+       expat \
+       host-xutil_makedepend \
+       host-libxml2 \
+       host-python \
+       host-bison \
+       host-flex
+
+MESA3D_CONF_OPT = \
+       --disable-static
+
+# Used by subst in some options
+null :=
+space := $(null) #
+comma := ,
+
+# Libraries
+
+ifeq ($(BR2_PACKAGE_MESA3D_GBM),y)
+MESA3D_DEPENDENCIES += udev
+MESA3D_CONF_OPT += --enable-gbm
+else
+MESA3D_CONF_OPT += --disable-gbm
+endif
+
+ifeq ($(BR2_PACKAGE_XSERVER_XORG_SERVER),y)
+MESA3D_DEPENDENCIES += \
+       xproto_xf86driproto xproto_dri2proto xproto_glproto \
+       xlib_libX11 xlib_libXext xlib_libXdamage xlib_libXfixes libxcb
+MESA3D_CONF_OPT += \
+       --enable-dri \
+       --enable-xa \
+       --enable-glx
+else
+MESA3D_CONF_OPT += \
+       --disable-dri \
+       --disable-xa \
+       --disable-glx
+endif
+
+# Drivers
+
+# Gallium Drivers
+ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_I915),y)
+MESA3D_GALLIUM_DRIVERS += i915
+endif
+ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU),y)
+MESA3D_GALLIUM_DRIVERS += nouveau
+endif
+ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R300),y)
+MESA3D_GALLIUM_DRIVERS += r300
+endif
+ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600),y)
+MESA3D_GALLIUM_DRIVERS += r600
+endif
+ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI),y)
+MESA3D_GALLIUM_DRIVERS += radeonsi
+endif
+ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SVGA),y)
+MESA3D_GALLIUM_DRIVERS += svga
+endif
+ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST),y)
+MESA3D_GALLIUM_DRIVERS += swrast
+endif
+

package/mesa3d/mesa3d.mk line 91

Quoted 10 lines
package/mesa3d/mesa3d.mk new file +10 -0
+# DRI Drivers
+ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST),y)
+MESA3D_DRI_DRIVERS += swrast
+endif
+ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER_I965),y)
+MESA3D_DRI_DRIVERS += i965
+endif
+ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON),y)
+MESA3D_DRI_DRIVERS += radeon
+endif

The above two sections could be made more elegant by using the kbuild way:

FOO-$(BR2_X) += x
FOO-$(BR2_Y) += y

The references to foo below should then be changed to FOO-y.

package/mesa3d/mesa3d.mk

Quoted 4 lines
package/mesa3d/mesa3d.mk new file +4 -0
+
+ifneq ($(MESA3D_GALLIUM_DRIVERS),)
+MESA3D_CONF_OPT += \
+       --with-gallium-drivers=$(subst

$(space),$(comma),$(MESA3D_GALLIUM_DRIVERS))

package/mesa3d/mesa3d.mk

Quoted 7 lines
package/mesa3d/mesa3d.mk new file +7 -0
+else
+MESA3D_CONF_OPT += --without-gallium-drivers
+endif
+
+ifneq ($(MESA3D_DRI_DRIVERS),)
+MESA3D_CONF_OPT += \
+       --with-dri-drivers=$(subst

$(space),$(comma),$(MESA3D_DRI_DRIVERS))

Quoted 8 lines
package/mesa3d/mesa3d.mk new file +8 -0
+else
+MESA3D_CONF_OPT += --without-dri-drivers
+endif
+
+# APIs
+
+ifeq ($(BR2_PACKAGE_MESA3D_EGL),y)
+MESA3D_EGL_PLATFORMS = drm

package/mesa3d/mesa3d.mk

Quoted 10 lines
package/mesa3d/mesa3d.mk new file +10 -0
+ifeq ($(BR2_PACKAGE_WAYLAND),y)
+MESA3D_DEPENDENCIES += wayland
+MESA3D_EGL_PLATFORMS += wayland
+endif
+ifeq ($(BR2_PACKAGE_XSERVER_XORG_SERVER),y)
+MESA3D_EGL_PLATFORMS += x11
+endif
+MESA3D_CONF_OPT += \
+       --enable-egl \
+       --with-egl-platforms=$(foreach subst

$(space),$(comma),$(MESA3D_EGL_PLATFORMS))

package/opengl/libegl/

Quoted 41 lines
package/mesa3d/mesa3d.mk new file +29 -0
+else
+MESA3D_CONF_OPT += --disable-egl
+endif
+
+ifeq ($(BR2_PACKAGE_MESA3D_OPENGL),y)
+MESA3D_CONF_OPT += --enable-opengl
+else
+MESA3D_CONF_OPT += --disable-opengl
+endif
+
+ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_ES),y)
+MESA3D_CONF_OPT += --enable-gles1 --enable-gles2
+else
+MESA3D_CONF_OPT += --disable-gles1 --disable-gles2
+endif
+
+ifeq ($(BR2_PACKAGE_MESA3D_OPENVG),y)
+MESA3D_CONF_OPT += --enable-openvg --enable-gallium-egl
+else
+MESA3D_CONF_OPT += --disable-openvg --disable-gallium-egl
+endif
+
+ifeq ($(BR2_PACKAGE_MESA3D_OPENCL),y)
+MESA3D_CONF_OPT += --enable-opencl
+else
+MESA3D_CONF_OPT += --disable-opencl
+endif
+
+$(eval $(autotools-package))
package/opengl/Config.in +3 -0
index 1636807..c705446 100644
@@ -1,3 +1,6 @@
+config BR2_PACKAGE_HAS_OPENGL
+       bool
+
 config BR2_PACKAGE_HAS_OPENGL_EGL
        bool
 
package/opengl/libegl/ renamed from package/opengl/libegl/libegl.mk +0 -0

libegl.mk

package/opengl/libgl/libgl.mk

Quoted 21 lines

index c194b02..2d52fe3 100644

package/opengl/libegl/libegl.mk +4 -0
@@ -22,6 +22,10 @@ ifeq ($(BR2_PACKAGE_GPU_VIV_BIN_MX6Q),y)
 LIBEGL_DEPENDENCIES += gpu-viv-bin-mx6q
 endif
 
+ifeq ($(BR2_PACKAGE_MESA3D_EGL),y)
+LIBEGL_DEPENDENCIES += mesa3d
+endif
+
 ifeq ($(LIBEGL_DEPENDENCIES),)
 define LIBEGL_CONFIGURE_CMDS
        echo "No libEGL implementation selected. Configuration error."
package/opengl/libgl/libgl.mk new file +0 -0
new file mode 100644
index 0000000..4b0d7f2
@@ -0,0 +1,20 @@

+################################################################################

package/opengl/libgl/libgl.mk line 4

Quoted 4 lines
package/opengl/libgl/libgl.mk new file +3 -0
+#
+# libgl
+#

+################################################################################

package/opengl/libgles/

Quoted 16 lines
package/opengl/libgl/libgl.mk new file +15 -0
+
+LIBGL_SOURCE =
+
+ifeq ($(BR2_PACKAGE_MESA_OPENGL),y)
+LIBGL_DEPENDENCIES += mesa3d
+endif
+
+ifeq ($(LIBGL_DEPENDENCIES),)
+define LIBOPENGL_CONFIGURE_CMDS
+       echo "No libOpenGL implementation selected. Configuration error."
+       exit 1
+endef
+endif
+
+$(eval $(generic-package))
package/opengl/libgles/ renamed from package/opengl/libgles/libgles.mk +0 -0

libgles.mk

Review

Quoted 15 lines

index ec157ac..8e5cef1 100644

package/opengl/libgles/libgles.mk +4 -0
@@ -22,6 +22,10 @@ ifeq ($(BR2_PACKAGE_GPU_VIV_BIN_MX6Q),y)
 LIBGLES_DEPENDENCIES += gpu-viv-bin-mx6q
 endif
 
+ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_ES),y)
+LIBGLES_DEPENDENCIES += mesa3d
+endif
+
 ifeq ($(LIBGLES_DEPENDENCIES),)
 define LIBGLES_CONFIGURE_CMDS
        echo "No libGLES implementation selected. Configuration error."
(quoted diff) +0 -0

libopenvg.mk

Review

Quoted 27 lines

index 3296f63..e897423 100644

package/opengl/libopenvg/libopenvg.mk +4 -0
@@ -10,6 +10,10 @@ ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
 LIBOPENVG_DEPENDENCIES += rpi-userland
 endif
 
+ifeq ($(BR2_PACKAGE_MESA3D_OPENVG),y)
+LIBOPENVG_DEPENDENCIES += mesa3d
+endif
+
 ifeq ($(LIBOPENVG_DEPENDENCIES),)
 define LIBOPENVG_CONFIGURE_CMDS
        echo "No libOpenVG implementation selected. Configuration error."
package/x11r7/Config.in +0 -1
index 205079c..d5d6e60 100644
@@ -13,7 +13,6 @@ if BR2_PACKAGE_XORG7
        endmenu
        menu "X11R7 Libraries"
                source package/x11r7/libxcb/Config.in
-               source package/x11r7/mesa3d/Config.in
                source package/x11r7/xcb-util/Config.in
                source package/x11r7/xcb-util-image/Config.in
                source package/x11r7/xcb-util-keysyms/Config.in
(quoted diff) +0 -0

b/package/x11r7/mesa3d/Config.in

Quoted 9 lines

deleted file mode 100644
index 080f56a..0000000

package/x11r7/mesa3d/Config.in deleted +0 -4
@@ -1,15 +0,0 @@
-config BR2_PACKAGE_MESA3D
-       bool "Mesa 3D Graphics Library"
-       select BR2_PACKAGE_XPROTO_GLPROTO
-       select BR2_PACKAGE_XLIB_LIBXXF86VM

package/x11r7/mesa3d/Config.in line 14

Quoted 10 lines
package/x11r7/mesa3d/Config.in deleted +0 -10
-       select BR2_PACKAGE_XLIB_LIBXDAMAGE
-       select BR2_PACKAGE_XLIB_LIBXFIXES
-       select BR2_PACKAGE_XPROTO_DRI2PROTO
-       select BR2_PACKAGE_LIBDRM
-       select BR2_PACKAGE_EXPAT
-       select BR2_PACKAGE_HOST_LIBXML2_PYTHON
-       depends on BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR
-       depends on BR2_INSTALL_LIBSTDCPP
-       help
-         Mesa 3D, an open-source implementation of the OpenGL

specification.

Review

Quoted 2 lines
package/x11r7/mesa3d/Config.in deleted +0 -1
-
(quoted diff) +0 -0

b/package/x11r7/mesa3d/mesa3d-uclibc-locale.patch

package/x11r7/mesa3d/mesa3d-uclibc-locale.patch line 5

Quoted 10 lines

deleted file mode 100644
index 99afe8d..0000000

package/x11r7/mesa3d/mesa3d-uclibc-locale.patch deleted +0 -5
@@ -1,56 +0,0 @@
-[PATCH] Fix compilation on uClibc without locale support
-
-Based on similar patch from OE:
-
-

http://git.openembedded.org/openembedded-core/commit/meta/recipes-graphics/mesa/mesa/0001-Compile-with-uclibc.patch?id=e4039eb74b20e96d4b8837cd58cf2d13d091e1ad

Quoted 5 lines
package/x11r7/mesa3d/mesa3d-uclibc-locale.patch deleted +0 -5
-
-Signed-off-by: Peter Korsgaard <[email protected]>
----
- configure.ac            |    3 +++
- src/glsl/strtod.c       |    2 +-

package/x11r7/mesa3d/mesa3d-uclibc-locale.patch

Quoted 10 lines
package/x11r7/mesa3d/mesa3d-uclibc-locale.patch deleted +0 -10
- src/mesa/main/imports.c |    2 +-
- 3 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index fbaa376..454dad2 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -450,6 +450,9 @@ AC_SUBST([DLOPEN_LIBS])
- dnl See if posix_memalign is available
- AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES

-DHAVE_POSIX_MEMALIGN"])

Quoted 6 lines
package/x11r7/mesa3d/mesa3d-uclibc-locale.patch deleted +0 -6
-
-+dnl See if newlocale is available
-+AC_CHECK_FUNCS_ONCE(newlocale)
-+
- dnl SELinux awareness.
- AC_ARG_ENABLE([selinux],

package/x11r7/mesa3d/mesa3d-uclibc-locale.patch

Quoted 10 lines
package/x11r7/mesa3d/mesa3d-uclibc-locale.patch deleted +0 -10
-     [AS_HELP_STRING([--enable-selinux],
-diff --git a/src/glsl/strtod.c b/src/glsl/strtod.c
-index a876e13..9fce7e9 100644
---- a/src/glsl/strtod.c
-+++ b/src/glsl/strtod.c
-@@ -44,7 +44,7 @@ double
- double
- glsl_strtod(const char *s, char **end)
- {
--#if defined(_GNU_SOURCE) && !defined(__CYGWIN__) &&

!defined(__FreeBSD__)

package/x11r7/mesa3d/mesa3d-uclibc-locale.patch line 37

Quoted 1 line
package/x11r7/mesa3d/mesa3d-uclibc-locale.patch deleted +0 -1
-+#if defined(_GNU_SOURCE) && !defined(__CYGWIN__) &&

!defined(__FreeBSD__) && defined(HAVE_NEWLOCALE)

package/x11r7/mesa3d/mesa3d-uclibc-locale.patch

Quoted 12 lines
package/x11r7/mesa3d/mesa3d-uclibc-locale.patch deleted +0 -12
-    static locale_t loc = NULL;
-    if (!loc) {
-       loc = newlocale(LC_CTYPE_MASK, "C", NULL);
-diff --git a/src/mesa/main/imports.c b/src/mesa/main/imports.c
-index d3727ef..363bf32 100644
---- a/src/mesa/main/imports.c
-+++ b/src/mesa/main/imports.c
-@@ -757,7 +757,7 @@ float
- float
- _mesa_strtof( const char *s, char **end )
- {
--#if defined(_GNU_SOURCE) && !defined(__CYGWIN__) &&

!defined(__FreeBSD__)

package/x11r7/mesa3d/mesa3d-uclibc-locale.patch line 50

Quoted 1 line
package/x11r7/mesa3d/mesa3d-uclibc-locale.patch deleted +0 -1
-+#if defined(_GNU_SOURCE) && !defined(__CYGWIN__) &&

!defined(__FreeBSD__) && defined(HAVE_NEWLOCALE)

package/x11r7/mesa3d/

Quoted 7 lines
package/x11r7/mesa3d/mesa3d-uclibc-locale.patch deleted +0 -6
-    static locale_t loc = NULL;
-    if (!loc) {
-       loc = newlocale(LC_CTYPE_MASK, "C", NULL);
---
-1.7.10.4
-
package/x11r7/mesa3d/ renamed from package/x11r7/mesa3d/mesa3d.mk +0 -0

mesa3d.mk

package/x11r7/mesa3d/mesa3d.mk

Quoted 6 lines

deleted file mode 100644
index f9d35a9..0000000

package/x11r7/mesa3d/mesa3d.mk deleted +0 -0
@@ -1,40 +0,0 @@

-################################################################################

package/x11r7/mesa3d/mesa3d.mk line 4

Quoted 4 lines
package/x11r7/mesa3d/mesa3d.mk deleted +0 -3
-#
-# mesa3d
-#

-################################################################################

Review

Quoted 36 lines
package/x11r7/mesa3d/mesa3d.mk deleted +0 -35
-
-MESA3D_VERSION = 7.10.3
-MESA3D_SOURCE = MesaLib-$(MESA3D_VERSION).tar.gz
-MESA3D_SITE = ftp://ftp.freedesktop.org/pub/mesa/$(MESA3D_VERSION)
-MESA3D_LICENSE = MIT, SGI, Khronos
-MESA3D_LICENSE_FILES = docs/license.html
-
-MESA3D_AUTORECONF = YES
-MESA3D_INSTALL_STAGING = YES
-
-MESA3D_CONF_OPT = \
-       --disable-egl \
-       --disable-glu \
-       --disable-glw \
-       --disable-glut \
-       --disable-gallium \
-       --with-driver=dri \
-       --with-dri-drivers=swrast \
-       --disable-static
-
-MESA3D_DEPENDENCIES = \
-       xproto_glproto \
-       xlib_libXxf86vm \
-       xlib_libXdamage \
-       xlib_libXfixes \
-       xproto_dri2proto \
-       libdrm \
-       expat \
-       host-xutil_makedepend \
-       host-libxml2 \
-       host-python \
-       host-bison \
-       host-flex
-
-$(eval $(autotools-package))
(quoted diff) +0 -0

xserver_xorg-server.mk

Quoted 24 lines

index 4089aab..f5a4db6 100644

package/x11r7/xserver_xorg-server/xserver_xorg-server.mk +2 -3
@@ -99,7 +99,7 @@ else # modular
 XSERVER_XORG_SERVER_CONF_OPT += --disable-kdrive --disable-xfbdev
 endif
 
-ifeq ($(BR2_PACKAGE_MESA3D),y)
+ifeq ($(BR2_PACKAGE_MESA3D_DRIVER),y)
 XSERVER_XORG_SERVER_DEPENDENCIES += mesa3d xproto_xf86driproto
 else
 XSERVER_XORG_SERVER_CONF_OPT += --disable-dri
@@ -172,7 +172,7 @@ ifneq ($(BR2_PACKAGE_XLIB_LIBDMX),y)
 XSERVER_XORG_SERVER_CONF_OPT += --disable-dmx
 endif
 
-ifeq ($(BR2_PACKAGE_MESA3D),y)
+ifeq ($(BR2_PACKAGE_MESA3D_DRIVER),y)
 XSERVER_XORG_SERVER_CONF_OPT += --enable-glx
 else
 XSERVER_XORG_SERVER_CONF_OPT += --disable-glx
--

1.8.1.2

Quoted 4 lines

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20130825/afc53ad6/attachment-0001.html>

#12 lore raw

PATCH 4/6 mesa3d: reorganize, modularize, and bump to version 9.1.6

In reply to Spenser Gilliland
Quoted 21 lines · Spenser Gilliland

move mesa3d out of xorg as it is not really an Xorg component.

---
  package/Config.in                                  |   1 +
  package/mesa3d/Config.in                           | 172 +++++++++++++++++++++
  package/mesa3d/mesa3d-cross-glsl-compiler.patch    |  41 +++++
  package/mesa3d/mesa3d-gbm-without-dri.patch        |  30 ++++
  package/mesa3d/mesa3d.mk                           | 149 ++++++++++++++++++
  package/opengl/Config.in                           |   3 +
  package/opengl/libegl/libegl.mk                    |   4 +
  package/opengl/libgl/libgl.mk                      |  20 +++
  package/opengl/libgles/libgles.mk                  |   4 +
  package/opengl/libopenvg/libopenvg.mk              |   4 +
  package/x11r7/Config.in                            |   1 -
  package/x11r7/mesa3d/Config.in                     |  15 --
  package/x11r7/mesa3d/mesa3d-uclibc-locale.patch    |  56 -------
  package/x11r7/mesa3d/mesa3d.mk                     |  40 -----
  .../xserver_xorg-server/xserver_xorg-server.mk     |   4 +-
  15 files changed, 430 insertions(+), 114 deletions(-)
Quoted 8 lines

create mode 100644 package/mesa3d/Config.in
create mode 100644 package/mesa3d/mesa3d-cross-glsl-compiler.patch create mode 100644 package/mesa3d/mesa3d-gbm-without-dri.patch create mode 100644 package/mesa3d/mesa3d.mk
create mode 100644 package/opengl/libgl/libgl.mk
delete mode 100644 package/x11r7/mesa3d/Config.in delete mode 100644 package/x11r7/mesa3d/mesa3d-uclibc-locale.patch delete mode 100644 package/x11r7/mesa3d/mesa3d.mk

Hi Spenser,

I think this patch should be split up into two or three patches:

- Move out of X tree

- Modularize

- Bump

(not necessarily in that order).

Regards,
Arnout

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

PATCH 4/6 mesa3d: reorganize, modularize, and bump to version 9.1.6

Spelling mistakes are fixed.

Quoted 10 lines

Hi Spenser,

I think this patch should be split up into two or three patches:

- Move out of X tree

- Modularize

- Bump

No problem. I will change this to three patches and resubmit.

Thanks,
Spenser

Signature · 3 lines
Spenser Gilliland
Computer Engineer
Doctoral Candidate
#14 lore raw

PATCH 5/6 libpng12: new package

In reply to Spenser Gilliland

libpng1X all have different incompatible apis therefore it is neccessary to have a seperate package for each branch.

---
 package/Config.in            |  1 +
 package/libpng12/Config.in   |  8 ++++++++
 package/libpng12/libpng12.mk | 18 ++++++++++++++++++
 3 files changed, 27 insertions(+)
 create mode 100644 package/libpng12/Config.in
 create mode 100644 package/libpng12/libpng12.mk
package/Config.in +1 -0
index 0278885..2b8bef0 100644
@@ -472,6 +472,7 @@ source "package/libglade/Config.in"
 source "package/gdk-pixbuf/Config.in"
 source "package/libgtk2/Config.in"
 source "package/libpng/Config.in"
+source "package/libpng12/Config.in"
 source "package/libqrencode/Config.in"
 source "package/libraw/Config.in"
 source "package/librsvg/Config.in"
package/libpng12/Config.in new file +8 -0
new file mode 100644
index 0000000..ff9e9b1
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_LIBPNG12
+	bool "libpng"
+	select BR2_PACKAGE_ZLIB
+	help
+	  Library for handling PNG (Portable Network Graphics)
+	  images.
+
+	  http://www.libpng.org/
package/libpng12/libpng12.mk new file +18 -0
new file mode 100644
index 0000000..de4a45c
@@ -0,0 +1,18 @@
+################################################################################
+#
+# libpng12
+#
+################################################################################
+
+LIBPNG12_VERSION = 1.2.50
+LIBPNG12_SERIES = 12
+LIBPNG12_SOURCE = libpng-$(LIBPNG12_VERSION).tar.bz2
+LIBPNG12_SITE = http://downloads.sourceforge.net/project/libpng/libpng${LIBPNG12_SERIES}/$(LIBPNG12_VERSION)
+LIBPNG12_LICENSE = libpng license
+LIBPNG12_LICENSE_FILES = LICENSE
+LIBPNG12_INSTALL_STAGING = YES
+LIBPNG12_DEPENDENCIES = host-pkgconf zlib
+LIBPNG12_CONFIG_SCRIPTS = libpng$(LIBPNG12_SERIES)-config libpng-config
+
+$(eval $(autotools-package))
+$(eval $(host-autotools-package))
Signature · 1 line
1.8.1.2
#15 lore raw

PATCH 5/6 libpng12: new package

Quoted 2 lines · Spenser Gilliland

libpng1X all have different incompatible apis therefore it is neccessary to have a seperate package for each branch.

This explanation should be in either the Config.in or in the .mk file
as well.

Quoted 42 lines
---
  package/Config.in            |  1 +
  package/libpng12/Config.in   |  8 ++++++++
  package/libpng12/libpng12.mk | 18 ++++++++++++++++++
  3 files changed, 27 insertions(+)

create mode 100644 package/libpng12/Config.in
create mode 100644 package/libpng12/libpng12.mk

package/Config.in +1 -0
index 0278885..2b8bef0 100644
@@ -472,6 +472,7 @@ source "package/libglade/Config.in"
  source "package/gdk-pixbuf/Config.in"
  source "package/libgtk2/Config.in"
  source "package/libpng/Config.in"
+source "package/libpng12/Config.in"
  source "package/libqrencode/Config.in"
  source "package/libraw/Config.in"
  source "package/librsvg/Config.in"
package/libpng12/Config.in new file +8 -0
new file mode 100644
index 0000000..ff9e9b1
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_LIBPNG12
+	bool "libpng"
+	select BR2_PACKAGE_ZLIB
+	help
+	  Library for handling PNG (Portable Network Graphics)
+	  images.
+
+	  http://www.libpng.org/
package/libpng12/libpng12.mk new file +0 -0
new file mode 100644
index 0000000..de4a45c

package/libpng12/libpng12.mk line 10

Quoted 10 lines
package/libpng12/libpng12.mk new file +10 -0
@@ -0,0 +1,18 @@
+################################################################################
+#
+# libpng12
+#
+################################################################################
+
+LIBPNG12_VERSION = 1.2.50
+LIBPNG12_SERIES = 12
+LIBPNG12_SOURCE = libpng-$(LIBPNG12_VERSION).tar.bz2
+LIBPNG12_SITE = http://downloads.sourceforge.net/project/libpng/libpng${LIBPNG12_SERIES}/$(LIBPNG12_VERSION)
  Use $(), not ${}

Regards,
Arnout

Quoted 9 lines
package/libpng12/libpng12.mk new file +8 -0
+LIBPNG12_LICENSE = libpng license
+LIBPNG12_LICENSE_FILES = LICENSE
+LIBPNG12_INSTALL_STAGING = YES
+LIBPNG12_DEPENDENCIES = host-pkgconf zlib
+LIBPNG12_CONFIG_SCRIPTS = libpng$(LIBPNG12_SERIES)-config libpng-config
+
+$(eval $(autotools-package))
+$(eval $(host-autotools-package))
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#16 lore raw

PATCH 5/6 libpng12: new package

Arnout,

Quoted 8 lines
Quoted 4 lines

libpng1X all have different incompatible apis therefore it is neccessary to
have a seperate package for each branch.

This explanation should be in either the Config.in or in the .mk file as
well.

Will fix.

Quoted 1 line

Use $(), not ${}

Will fix.

Thanks,
Spenser

Signature · 3 lines
Spenser Gilliland
Computer Engineer
Doctoral Candidate
#17 lore raw

PATCH 6/6 glmark2: new package

In reply to Spenser Gilliland
---
 package/Config.in                                  |   1 +
 package/glmark2/Config.in                          |  49 ++++++++++
 package/glmark2/glmark2-add-mali-support.patch     | 102 +++++++++++++++++++++
 package/glmark2/glmark2-fix-add-GLchar.patch       |  17 ++++
 .../glmark2-gl-to-glesv2-on-drm-flavor.patch       |  25 +++++
 package/glmark2/glmark2.mk                         |  70 ++++++++++++++
 6 files changed, 264 insertions(+)
 create mode 100644 package/glmark2/Config.in
 create mode 100644 package/glmark2/glmark2-add-mali-support.patch
 create mode 100644 package/glmark2/glmark2-fix-add-GLchar.patch
 create mode 100644 package/glmark2/glmark2-gl-to-glesv2-on-drm-flavor.patch
 create mode 100644 package/glmark2/glmark2.mk
package/Config.in +1 -0
index 2b8bef0..ebe8cb4 100644
@@ -24,6 +24,7 @@ source "package/dstat/Config.in"
 source "package/dmalloc/Config.in"
 source "package/dropwatch/Config.in"
 source "package/gdb/Config.in"
+source "package/glmark2/Config.in"
 source "package/iozone/Config.in"
 source "package/kexec/Config.in"
 source "package/latencytop/Config.in"
package/glmark2/Config.in new file +49 -0

49 lines not on this page · raw message

package/glmark2/glmark2-add-mali-support.patch new file +102 -0

102 lines not on this page · raw message

package/glmark2/glmark2-fix-add-GLchar.patch new file +17 -0
new file mode 100644
index 0000000..15653de
@@ -0,0 +1,17 @@
+Bug fix in program.cc.  There is no such type as GLchar.
+
+Signed-off-by: Spenser Gilliland <[email protected]>
+---
+Index: glmark2-2012.12/src/libmatrix/program.cc
+===================================================================
+--- glmark2-2012.12.orig/src/libmatrix/program.cc	2012-12-18 13:45:45.000000000 -0600
++++ glmark2-2012.12/src/libmatrix/program.cc	2013-08-13 20:08:27.005724911 -0500
+@@ -17,6 +17,8 @@
+ #include "gl-if.h"
+ #include "program.h"
+ 
++typedef char GLchar;
++
+ using std::string;
+ using LibMatrix::mat4;
+ using LibMatrix::mat3;
package/glmark2/glmark2-gl-to-glesv2-on-drm-flavor.patch new file +25 -0
new file mode 100644
index 0000000..5f838cc
@@ -0,0 +1,25 @@
+Bug in build script requires full opengl when only opengl es is actually
+required.
+
+Signed-off-by: Spenser Gilliland <[email protected]>
+---
+Index: glmark2-279/src/wscript_build
+===================================================================
+--- glmark2-279.orig/src/wscript_build	2013-08-19 17:36:32.000000000 -0500
++++ glmark2-279/src/wscript_build	2013-08-20 10:31:39.364629078 -0500
+@@ -23,11 +23,12 @@
+   'x11-gl' : ['x11', 'gl', 'matrix-gl'],
+   'x11-glesv2' : ['x11', 'egl', 'glesv2', 'matrix-glesv2'],
+   'drm-gl' : ['drm', 'gbm', 'egl', 'gl', 'matrix-gl'],
+-  'drm-glesv2' : ['drm', 'gbm', 'egl', 'glesv2', 'matrix-gl'],
++  'drm-glesv2' : ['drm', 'gbm', 'egl', 'glesv2', 'matrix-glesv2'],
+   'mir-gl' : ['mirclient', 'egl', 'gl', 'matrix-gl'],
+-  'mir-glesv2' : ['mirclient', 'egl', 'glesv2', 'matrix-gl'],
++  'mir-glesv2' : ['mirclient', 'egl', 'glesv2', 'matrix-glesv2'],
+   'wayland-gl' : ['wayland-client', 'wayland-egl', 'egl', 'gl', 'matrix-gl'],
+-  'wayland-glesv2' : ['wayland-client', 'wayland-egl', 'egl', 'glesv2', 'matrix-gl'],
++  'wayland-glesv2' : ['wayland-client', 'wayland-egl', 'egl', 'glesv2',
++  'matrix-glesv2'],
+   'fbdev-glesv2' : ['egl', 'glesv2', 'matrix-glesv2']
+ }
+ flavor_defines = {
package/glmark2/glmark2.mk new file +70 -0

70 lines not on this page · raw message

Signature · 1 line
1.8.1.2
#18 lore raw

PATCH 6/6 glmark2: new package

Quoted 9 lines · Spenser Gilliland
---
  package/Config.in                                  |   1 +
  package/glmark2/Config.in                          |  49 ++++++++++
  package/glmark2/glmark2-add-mali-support.patch     | 102 +++++++++++++++++++++
  package/glmark2/glmark2-fix-add-GLchar.patch       |  17 ++++
  .../glmark2-gl-to-glesv2-on-drm-flavor.patch       |  25 +++++
  package/glmark2/glmark2.mk                         |  70 ++++++++++++++
  6 files changed, 264 insertions(+)
Quoted 4 lines

create mode 100644 package/glmark2/Config.in
create mode 100644 package/glmark2/glmark2-add-mali-support.patch create mode 100644 package/glmark2/glmark2-fix-add-GLchar.patch create mode 100644 package/glmark2/glmark2-gl-to-glesv2-on-drm-flavor.patch

Have these patches been sent upstream?

Quoted 20 lines

create mode 100644 package/glmark2/glmark2.mk

package/Config.in +1 -0
index 2b8bef0..ebe8cb4 100644
@@ -24,6 +24,7 @@ source "package/dstat/Config.in"
  source "package/dmalloc/Config.in"
  source "package/dropwatch/Config.in"
  source "package/gdb/Config.in"
+source "package/glmark2/Config.in"
  source "package/iozone/Config.in"
  source "package/kexec/Config.in"
  source "package/latencytop/Config.in"
package/glmark2/Config.in new file +0 -0
new file mode 100644
index 0000000..47ed221

package/glmark2/Config.in line 4

Quoted 4 lines
package/glmark2/Config.in new file +4 -0
@@ -0,0 +1,49 @@
+config BR2_PACKAGE_GLMARK2
+	bool "glmark2"
+	depends on BR2_PACKAGE_MESA3D
+	depends on BR2_PACKAGE_MESA3D_GBM

I would think that a select is more appropriate here.

package/glmark2/Config.in line 11

Quoted 7 lines
package/glmark2/Config.in new file +7 -0
+	depends on BR2_LARGEFILE
+	depends on BR2_PACKAGE_HAS_OPENGL || \
+		(BR2_PACKAGE_HAS_OPENGL_EGL && BR2_PACKAGE_HAS_OPENGL_ES)
+	select BR2_PACKAGE_JPEG
+	select BR2_PACKAGE_LIBPNG12
+	select BR2_PACKAGE_XLIB_LIBPCIACCESS if BR2_i386 || BR2_x86_64 # libdrm
+	select BR2_PACKAGE_XLIB_LIBPTHREAD_STUBS # libdrm

These selects are redundant, they're done by libdrm...

package/glmark2/Config.in line 22

Quoted 11 lines
package/glmark2/Config.in new file +11 -0
+	help
+	  glmark2 is a benchmark for OpenGL (ES) 2.0. It uses only the subset of the
+	  OpenGL 2.0 API that is compatible with OpenGL ES 2.0.
+
+if BR2_PACKAGE_GLMARK2
+
+config BR2_PACKAGE_GLMARK2_X11
+	bool "X11"
+	depends on BR2_PACKAGE_XSERVER_XORG_SERVER
+	help
+	 Use X11 window for display.

Since this is a benchmark tool, I don't really think it is necessary to
make the backends configurable. Just include any backend that is available.

You would probably want a "depends on" in the top symbol to make sure
at least one backend is available.

Quoted 15 lines
package/glmark2/Config.in new file +15 -0
+
+config BR2_PACKAGE_GLMARK2_EGL
+	bool "EGL"
+	default y
+	depends on BR2_PACKAGE_HAS_OPENGL_EGL
+	help
+	  Use EGL window for display.
+
+config BR2_PACKAGE_GLMARK2_OPENGL
+	bool "Install Desktop OpenGL 2.0 Version"
+	default y
+	depends on BR2_PACKAGE_HAS_OPENGL
+	help
+	  Enable desktop OpenGL version.
+

package/glmark2/Config.in line 47

Quoted 10 lines
package/glmark2/Config.in new file +10 -0
+config BR2_PACKAGE_GLMARK2_OPENGL_ES
+	bool "Install OpenGL ES 2.0 Version"
+	default y
+	depends on BR2_PACKAGE_HAS_OPENGL_ES
+	help
+	  Enable OpenGL ES 2.0 Version.
+
+endif
+
+comment "glmark2 requires an OpenGL implementation and many X libraries"

Actually just mesa3d AFAICS, so "many X libraries" is an exaggeration.

Quoted 2 lines
package/glmark2/Config.in new file +2 -0
+	depends on !BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_OPENGL_ES \
+		|| !BR2_PACKAGE_XORG7

[snip]

Quoted 50 lines
package/glmark2/glmark2.mk new file +44 -0
new file mode 100644
index 0000000..47b464b
@@ -0,0 +1,70 @@
+################################################################################
+#
+# glmark2
+#
+################################################################################
+
+GLMARK2_VERSION = 279
+GLMARK2_SITE = http://bazaar.launchpad.net/~laanwj/glmark2/fbdev
+GLMARK2_SITE_METHOD = bzr
+GLMARK2_SOURCE = glmark2-$(GLMARK2_VERSION).tar.gz
+GLMARK2_LICENSE = GPLv3+ SGIv1
+GLMARK2_LICENSE_FILES = COPYING COPYING.SGI
+
+GLMARK2_DEPENDENCIES = jpeg libpng12 mesa3d host-python host-pkgconf
+
+GLMARK2_CONF_OPTS = --prefix=/usr/
+
+ifeq ($(BR2_PACKAGE_GLMARK2_X11)$(BR2_PACKAGE_GLMARK2_OPENGL_ES),yy)
+GLMARK2_DEPENDENCIES += libegl libgles
+GLMARK2_FLAVORS += x11-glesv2
+endif
+
+ifeq ($(BR2_PACKAGE_GLMARK2_X11)$(BR2_PACKAGE_GLMARK2_OPENGL),yy)
+GLMARK2_DEPENDENCIES += libgl
+GLMARK2_FLAVORS += x11-gl
+endif
+
+ifeq ($(BR2_PACKAGE_GLMARK2_EGL)$(BR2_PACKAGE_GLMARK2_OPENGL_ES),yy)
+GLMARK2_DEPENDENCIES += libdrm libegl libgles
+GLMARK2_FLAVORS += drm-glesv2 fbdev-glesv2
+endif
+
+ifeq ($(BR2_PACKAGE_GLMARK2_EGL)$(BR2_PACKAGE_GLMARK2_OPENGL),yy)
+GLMARK2_DEPENDENCIES += libdrm libgl
+GLMARK2_FLAVORS += drm-gl
+endif
+
+ifeq ($(BR2_PACKAGE_WAYLAND)$(BR2_PACKAGE_GLMARK2_OPENGL_ES),yy)
+GLMARK2_DEPENDENCIES += wayland libegl libgles
+GLMARK2_FLAVORS += wayland-glesv2
+endif
+
+ifeq ($(BR2_PACKAGE_WAYLAND)$(BR2_PACKAGE_GLMARK2_OPENGL),yy)
+GLMARK2_DEPENDENCIES += wayland libgl

package/glmark2/glmark2.mk line 54

Quoted 10 lines
package/glmark2/glmark2.mk new file +10 -0
+GLMARK2_FLAVORS += wayland-gl
+endif
+
+ifeq ($(BR2_PACKAGE_SUNXI_MALI),y)
+GLMARK2_CONF_OPTS += --for-mali
+endif
+
+null :=
+space := $(null) #
+comma := ,

space and comma are already defined in the top-level Makefile, and used
in a few other packages as well.

package/glmark2/glmark2.mk line 59

Quoted 5 lines
package/glmark2/glmark2.mk new file +5 -0
+
+GLMARK2_CONF_OPTS += --with-flavors=$(subst $(space),$(comma),$(GLMARK2_FLAVORS))
+
+define GLMARK2_CONFIGURE_CMDS
+cd $(@D) && $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) ./waf configure $(GLMARK2_CONF_OPTS)

Indent with a tab (same for other _CMDS).

Regards,
Arnout

Quoted 12 lines
package/glmark2/glmark2.mk new file +11 -0
+endef
+
+define GLMARK2_BUILD_CMDS
+cd $(@D) && $(TARGET_MAKE_ENV) ./waf
+endef
+
+define GLMARK2_INSTALL_TARGET_CMDS
+cd $(@D) && $(TARGET_MAKE_ENV) ./waf install --destdir=$(TARGET_DIR)
+endef
+
+$(eval $(generic-package))
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#19 lore raw

PATCH 6/6 glmark2: new package

Arnout,

Thanks for the review. I appreciate your suggestions.

Quoted 19 lines · Arnout Vandecappelle
Quoted 11 lines · Spenser Gilliland
---
  package/Config.in                                  |   1 +
  package/glmark2/Config.in                          |  49 ++++++++++
  package/glmark2/glmark2-add-mali-support.patch     | 102
+++++++++++++++++++++
  package/glmark2/glmark2-fix-add-GLchar.patch       |  17 ++++
  .../glmark2-gl-to-glesv2-on-drm-flavor.patch       |  25 +++++
  package/glmark2/glmark2.mk                         |  70 ++++++++++++++
  6 files changed, 264 insertions(+)
Quoted 5 lines

create mode 100644 package/glmark2/Config.in
create mode 100644 package/glmark2/glmark2-add-mali-support.patch create mode 100644 package/glmark2/glmark2-fix-add-GLchar.patch create mode 100644
package/glmark2/glmark2-gl-to-glesv2-on-drm-flavor.patch

Quoted 1 line

Have these patches been sent upstream?

Not yet. I was planning to wait until these patches were committed before submitting them upstream.

Quoted 20 lines
Quoted 20 lines

create mode 100644 package/glmark2/glmark2.mk

package/Config.in +1 -0
index 2b8bef0..ebe8cb4 100644
@@ -24,6 +24,7 @@ source "package/dstat/Config.in"
  source "package/dmalloc/Config.in"
  source "package/dropwatch/Config.in"
  source "package/gdb/Config.in"
+source "package/glmark2/Config.in"
  source "package/iozone/Config.in"
  source "package/kexec/Config.in"
  source "package/latencytop/Config.in"
package/glmark2/Config.in new file +0 -0
new file mode 100644
index 0000000..47ed221
Quoted 8 lines

package/glmark2/Config.in line 4

Quoted 5 lines
package/glmark2/Config.in new file +4 -0
@@ -0,0 +1,49 @@
+config BR2_PACKAGE_GLMARK2
+       bool "glmark2"
+       depends on BR2_PACKAGE_MESA3D
+       depends on BR2_PACKAGE_MESA3D_GBM

I would think that a select is more appropriate here.

Will fix.

Quoted 12 lines
Quoted 10 lines
package/glmark2/Config.in new file +6 -0
+       depends on BR2_LARGEFILE
+       depends on BR2_PACKAGE_HAS_OPENGL || \
+               (BR2_PACKAGE_HAS_OPENGL_EGL && BR2_PACKAGE_HAS_OPENGL_ES)
+       select BR2_PACKAGE_JPEG
+       select BR2_PACKAGE_LIBPNG12
+       select BR2_PACKAGE_XLIB_LIBPCIACCESS if BR2_i386 || BR2_x86_64 #

libdrm
+ select BR2_PACKAGE_XLIB_LIBPTHREAD_STUBS # libdrm

Quoted 1 line

These selects are redundant, they're done by libdrm...

Will fix.

Quoted 18 lines

package/glmark2/Config.in line 22

Quoted 13 lines
package/glmark2/Config.in new file +2 -0
+       help
+         glmark2 is a benchmark for OpenGL (ES) 2.0. It uses only the

subset of the

package/glmark2/Config.in new file +9 -0
+         OpenGL 2.0 API that is compatible with OpenGL ES 2.0.
+
+if BR2_PACKAGE_GLMARK2
+
+config BR2_PACKAGE_GLMARK2_X11
+       bool "X11"
+       depends on BR2_PACKAGE_XSERVER_XORG_SERVER
+       help
+        Use X11 window for display.

Since this is a benchmark tool, I don't really think it is necessary to
make the backends configurable. Just include any backend that is available.

Quoted 2 lines

You would probably want a "depends on" in the top symbol to make sure at
least one backend is available.

Will fix.

Quoted 21 lines
Quoted 21 lines
package/glmark2/Config.in new file +20 -0
+
+config BR2_PACKAGE_GLMARK2_EGL
+       bool "EGL"
+       default y
+       depends on BR2_PACKAGE_HAS_OPENGL_EGL
+       help
+         Use EGL window for display.
+
+config BR2_PACKAGE_GLMARK2_OPENGL
+       bool "Install Desktop OpenGL 2.0 Version"
+       default y
+       depends on BR2_PACKAGE_HAS_OPENGL
+       help
+         Enable desktop OpenGL version.
+
+config BR2_PACKAGE_GLMARK2_OPENGL_ES
+       bool "Install OpenGL ES 2.0 Version"
+       default y
+       depends on BR2_PACKAGE_HAS_OPENGL_ES
+       help
Quoted 8 lines

package/glmark2/Config.in line 47

Quoted 5 lines
package/glmark2/Config.in new file +5 -0
+         Enable OpenGL ES 2.0 Version.
+
+endif
+
+comment "glmark2 requires an OpenGL implementation and many X libraries"

Actually just mesa3d AFAICS, so "many X libraries" is an exaggeration.

This was left in from before my fixes in libdrm/mesa3d. Will fix.

Quoted 65 lines
Quoted 4 lines

+ depends on !BR2_PACKAGE_HAS_OPENGL_EGL ||
!BR2_PACKAGE_HAS_OPENGL_ES \
+ || !BR2_PACKAGE_XORG7

[snip]

Quoted 58 lines
package/glmark2/glmark2.mk new file +50 -0
new file mode 100644
index 0000000..47b464b
@@ -0,0 +1,70 @@
 
+################################################################################
+#
+# glmark2
+#
 
+################################################################################
+
+GLMARK2_VERSION = 279
+GLMARK2_SITE = http://bazaar.launchpad.net/~laanwj/glmark2/fbdev
+GLMARK2_SITE_METHOD = bzr
+GLMARK2_SOURCE = glmark2-$(GLMARK2_VERSION).tar.gz
+GLMARK2_LICENSE = GPLv3+ SGIv1
+GLMARK2_LICENSE_FILES = COPYING COPYING.SGI
+
+GLMARK2_DEPENDENCIES = jpeg libpng12 mesa3d host-python host-pkgconf
+
+GLMARK2_CONF_OPTS = --prefix=/usr/
+
+ifeq ($(BR2_PACKAGE_GLMARK2_X11)$(BR2_PACKAGE_GLMARK2_OPENGL_ES),yy)
+GLMARK2_DEPENDENCIES += libegl libgles
+GLMARK2_FLAVORS += x11-glesv2
+endif
+
+ifeq ($(BR2_PACKAGE_GLMARK2_X11)$(BR2_PACKAGE_GLMARK2_OPENGL),yy)
+GLMARK2_DEPENDENCIES += libgl
+GLMARK2_FLAVORS += x11-gl
+endif
+
+ifeq ($(BR2_PACKAGE_GLMARK2_EGL)$(BR2_PACKAGE_GLMARK2_OPENGL_ES),yy)
+GLMARK2_DEPENDENCIES += libdrm libegl libgles
+GLMARK2_FLAVORS += drm-glesv2 fbdev-glesv2
+endif
+
+ifeq ($(BR2_PACKAGE_GLMARK2_EGL)$(BR2_PACKAGE_GLMARK2_OPENGL),yy)
+GLMARK2_DEPENDENCIES += libdrm libgl
+GLMARK2_FLAVORS += drm-gl
+endif
+
+ifeq ($(BR2_PACKAGE_WAYLAND)$(BR2_PACKAGE_GLMARK2_OPENGL_ES),yy)
+GLMARK2_DEPENDENCIES += wayland libegl libgles
+GLMARK2_FLAVORS += wayland-glesv2
+endif
+
+ifeq ($(BR2_PACKAGE_WAYLAND)$(BR2_PACKAGE_GLMARK2_OPENGL),yy)
+GLMARK2_DEPENDENCIES += wayland libgl
+GLMARK2_FLAVORS += wayland-gl
+endif
+
+ifeq ($(BR2_PACKAGE_SUNXI_MALI),y)
+GLMARK2_CONF_OPTS += --for-mali
+endif
Quoted 8 lines

package/glmark2/glmark2.mk line 54

Quoted 4 lines
package/glmark2/glmark2.mk new file +4 -0
+
+null :=
+space := $(null) #
+comma := ,

space and comma are already defined in the top-level Makefile, and used in
a few other packages as well.

Will fix.

Quoted 11 lines
Quoted 8 lines
package/glmark2/glmark2.mk new file +2 -0
+
+GLMARK2_CONF_OPTS += --with-flavors=$(subst

$(space),$(comma),$(GLMARK2_FLAVORS))

package/glmark2/glmark2.mk new file +3 -0
+
+define GLMARK2_CONFIGURE_CMDS
+cd $(@D) && $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) ./waf configure

$(GLMARK2_CONF_OPTS)

Indent with a tab (same for other _CMDS).

Will fix.

Thanks,
Spenser

Signature · 3 lines
Spenser Gilliland
Computer Engineer
Doctoral Candidate
#20 lore raw

PATCH 6/6 glmark2: new package

Quoted 24 lines · Spenser Gilliland

Arnout,

Thanks for the review. I appreciate your suggestions.

Quoted 19 lines · Arnout Vandecappelle
Quoted 19 lines · Spenser Gilliland
Quoted 16 lines
Quoted 16 lines
---
  package/Config.in                                  |   1 +
  package/glmark2/Config.in                          |  49 ++++++++++
  package/glmark2/glmark2-add-mali-support.patch     | 102
+++++++++++++++++++++
  package/glmark2/glmark2-fix-add-GLchar.patch       |  17 ++++
  .../glmark2-gl-to-glesv2-on-drm-flavor.patch       |  25 +++++
  package/glmark2/glmark2.mk                         |  70 ++++++++++++++
  6 files changed, 264 insertions(+)

create mode 100644 package/glmark2/Config.in
create mode 100644 package/glmark2/glmark2-add-mali-support.patch create mode 100644 package/glmark2/glmark2-fix-add-GLchar.patch create mode 100644
package/glmark2/glmark2-gl-to-glesv2-on-drm-flavor.patch

Quoted 3 lines
Quoted 1 line
Quoted 1 line

Have these patches been sent upstream?

Not yet. I was planning to wait until these patches were committed before submitting them upstream.

It's a better idea to send them right away. The buildroot people are
not ideally placed to review those patches, so you may get more useful feedback from upstream. Also, if upstream is fast enough to review the patches, you can still make modifications to the patch included in buildroot.

Regards,
Arnout

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

PATCH 6/6 glmark2: new package

Quoted 33 lines · Arnout Vandecappelle
Quoted 32 lines · Spenser Gilliland

Arnout,

Thanks for the review. I appreciate your suggestions.

Quoted 24 lines · Arnout Vandecappelle
Quoted 24 lines · Spenser Gilliland
Quoted 18 lines
Quoted 13 lines
---
  package/Config.in                                  |   1 +
  package/glmark2/Config.in                          |  49 ++++++++++
  package/glmark2/glmark2-add-mali-support.patch     | 102
+++++++++++++++++++++
  package/glmark2/glmark2-fix-add-GLchar.patch       |  17 ++++
  .../glmark2-gl-to-glesv2-on-drm-flavor.patch       |  25 +++++
  package/glmark2/glmark2.mk                         |  70
++++++++++++++
  6 files changed, 264 insertions(+)
Quoted 5 lines

create mode 100644 package/glmark2/Config.in
create mode 100644 package/glmark2/glmark2-add-mali-support.patch create mode 100644 package/glmark2/glmark2-fix-add-GLchar.patch create mode 100644
package/glmark2/glmark2-gl-to-glesv2-on-drm-flavor.patch

Have these patches been sent upstream?

Quoted 8 lines
Quoted 2 lines

Not yet. I was planning to wait until these patches were committed before submitting them upstream.

It's a better idea to send them right away. The buildroot people are not
ideally placed to review those patches, so you may get more useful feedback from upstream. Also, if upstream is fast enough to review the patches, you can still make modifications to the patch included in buildroot.

They have been sent. Awaiting review using launchpad see
https://code.launchpad.net/~spenser-gilliland/glmark2/mali-fbdev .

Quoted 5 lines

Regards,
Arnout

Quoted 7 lines

--

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

Regards,
Spenser

Signature · 3 lines
Spenser Gilliland
Computer Engineer
Doctoral Candidate
#22 lore raw

PATCH 6/6 glmark2: new package

In reply to Spenser Gilliland

Dear Spenser Gilliland,

package/glmark2/Config.in line 7

Quoted 13 lines · Spenser Gilliland
package/glmark2/Config.in new file +7 -0
new file mode 100644
index 0000000..47ed221
@@ -0,0 +1,49 @@
+config BR2_PACKAGE_GLMARK2
+	bool "glmark2"
+	depends on BR2_PACKAGE_MESA3D
+	depends on BR2_PACKAGE_MESA3D_GBM
+	depends on BR2_LARGEFILE
+	depends on BR2_PACKAGE_HAS_OPENGL || \
+		(BR2_PACKAGE_HAS_OPENGL_EGL && BR2_PACKAGE_HAS_OPENGL_ES)

It's probably me not having enough OpenGL/Mesa knowledge, but my understanding was that Mesa was the OpenGL/EGL/OpenVG implementations for "desktop" graphics cards, and that therefore Mesa was equivalent to the OpenGL implementations provided by ARM SoC vendors, so that OpenGL applications such as glmark2 would only have to depends on HAS_OPENGL || (HAS_OPENGL_EGL && HAS_OPENGL_ES), and not depend on Mesa in addition to this.

With the dependencies you've listed, on a TI OMAP3 platform, we would need both Mesa *and* the ti-gfx package. Is this expected? I suppose that this means Mesa provides more stuff that just GL/GLES/EGL/VG. If that's the case, do you have a few more details?

package/glmark2/Config.in line 11

Quoted 4 lines
package/glmark2/Config.in new file +4 -0
+	select BR2_PACKAGE_JPEG
+	select BR2_PACKAGE_LIBPNG12
+	select BR2_PACKAGE_XLIB_LIBPCIACCESS if BR2_i386 || BR2_x86_64 # libdrm
+	select BR2_PACKAGE_XLIB_LIBPTHREAD_STUBS # libdrm

glmark2 is directly using libpciaccess and libpthread-stubs?

Thanks!

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#23 lore raw

PATCH 6/6 glmark2: new package

Thomas,

Quoted 7 lines

It's probably me not having enough OpenGL/Mesa knowledge, but my understanding was that Mesa was the OpenGL/EGL/OpenVG implementations for "desktop" graphics cards, and that therefore Mesa was equivalent to the OpenGL implementations provided by ARM SoC vendors, so that OpenGL applications such as glmark2 would only have to depends on HAS_OPENGL || (HAS_OPENGL_EGL && HAS_OPENGL_ES), and not depend on Mesa in addition to this.

GLMark2 depends on Mesa because Mesa provides libgbm which is a required dependency of glmark2.

Quoted 5 lines

With the dependencies you've listed, on a TI OMAP3 platform, we would need both Mesa *and* the ti-gfx package. Is this expected? I suppose that this means Mesa provides more stuff that just GL/GLES/EGL/VG. If that's the case, do you have a few more details?

Everything you have mentioned is completely correct.

Quoted 6 lines

package/glmark2/Config.in line 11

Quoted 4 lines
package/glmark2/Config.in new file +4 -0
+     select BR2_PACKAGE_JPEG
+     select BR2_PACKAGE_LIBPNG12
+     select BR2_PACKAGE_XLIB_LIBPCIACCESS if BR2_i386 || BR2_x86_64 # libdrm
+     select BR2_PACKAGE_XLIB_LIBPTHREAD_STUBS # libdrm

glmark2 is directly using libpciaccess and libpthread-stubs?

Fixed in recent version.

Quoted 8 lines

Thanks!

Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

Signature · 3 lines
Spenser Gilliland
Computer Engineer
Doctoral Candidate