glmark2: new package
PATCH v5 1/1 glmark2: new package
From: Spenser Gilliland <[email protected]>
---
v5: - renamed patch according to new naming convention
- depend on mesa3d (Yann)
v4: - rebased Spenser?s patch: http://patchwork.ozlabs.org/patch/278304/
- switched to new official repo, see https://launchpad.net/glmark2
this also removes fbdev support, since I can not test it
- removed Spencer?s SUNXI_MALI patches, due to lack of hardware I can not test it
- renamed options for virtual GL packages
- reworked dependencies, I hope I got all combinations right
- added patch to support current libpng
--- package/Config.in | 1 + package/glmark2/0001-libpng16.patch | 18 +++++++++++ package/glmark2/Config.in | 37 ++++++++++++++++++++++ package/glmark2/glmark2.mk | 59 +++++++++++++++++++++++++++++++++++ 4 files changed, 115 insertions(+) create mode 100644 package/glmark2/0001-libpng16.patch create mode 100644 package/glmark2/Config.in create mode 100644 package/glmark2/glmark2.mk
package/Config.in +1 -0
@@ -187,6 +187,7 @@ menu "Graphic libraries and applications (graphic/text)" comment "Graphic applications" source "package/fswebcam/Config.in" + source "package/glmark2/Config.in" source "package/gnuplot/Config.in" source "package/jhead/Config.in" source "package/mesa3d-demos/Config.in"
package/glmark2/0001-libpng16.patch new file +18 -0
@@ -0,0 +1,18 @@ +glmark2: Add support for libpng16 + +Patch sent upstream: https://github.com/glmark2/glmark2/issues/5 + +Signed-off-by: Bernd Kuhls <[email protected]> + +diff -uNr glmark2-0005100d7221190720dc130605d07cbd56e83047.org/wscript glmark2-0005100d7221190720dc130605d07cbd56e83047/wscript +--- glmark2-0005100d7221190720dc130605d07cbd56e83047.org/wscript 2014-09-26 11:14:47.000000000 +0200 ++++ glmark2-0005100d7221190720dc130605d07cbd56e83047/wscript 2014-10-17 19:40:16.011722310 +0200 +@@ -94,7 +94,7 @@ + uselib = uselib, mandatory = True) + + # Check for a supported version of libpng +- supp_png_pkgs = (('libpng12', '1.2'), ('libpng15', '1.5'),) ++ supp_png_pkgs = (('libpng12', '1.2'), ('libpng15', '1.5'), ('libpng16', '1.6'),) + have_png = False + for (pkg, atleast) in supp_png_pkgs: + try:
package/glmark2/Config.in new file +37 -0
@@ -0,0 +1,37 @@ +config BR2_PACKAGE_GLMARK2_EGL_GLES + bool + default y + depends on BR2_PACKAGE_HAS_LIBEGL + depends on BR2_PACKAGE_HAS_LIBGLES + depends on BR2_PACKAGE_MESA3D + +config BR2_PACKAGE_GLMARK2_GL + bool + default y + depends on BR2_PACKAGE_HAS_LIBGL + depends on BR2_PACKAGE_MESA3D + +comment "glmark2 needs an OpenGL or an openGL ES and EGL backend provided by mesa3d" + depends on BR2_INSTALL_LIBSTDCPP # mesa3d + depends on BR2_LARGEFILE + depends on BR2_PACKAGE_HAS_UDEV # mesa3d + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # mesa3d + depends on !BR2_PACKAGE_GLMARK2_GL && !BR2_PACKAGE_GLMARK2_EGL_GLES + +config BR2_PACKAGE_GLMARK2 + bool "glmark2" + depends on BR2_INSTALL_LIBSTDCPP # mesa3d + depends on BR2_LARGEFILE + depends on BR2_PACKAGE_GLMARK2_GL || BR2_PACKAGE_GLMARK2_EGL_GLES + depends on BR2_PACKAGE_HAS_UDEV # mesa3d + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # mesa3d + select BR2_PACKAGE_JPEG + select BR2_PACKAGE_LIBPNG + help + glmark2 is an OpenGL 2.0 and ES 2.0 benchmark. + + https://github.com/glmark2/glmark2 + +comment "glmark2 needs udev /dev management and a toolchain w/ C++, largefile, NPTL" + depends on !BR2_LARGEFILE || !BR2_INSTALL_LIBSTDCPP || \ + !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_PACKAGE_HAS_UDEV
package/glmark2/glmark2.mk new file +59 -0
59 lines not on this page · raw message
Signature · 1 line
1.7.10.4
PATCH v5 1/1 glmark2: new package
Bernd, All,
On 2014-11-22 14:05 +0100, Bernd Kuhls spake thusly:
Quoted 4 lines
From: Spenser Gilliland <[email protected]>
Signed-off-by Spenser Gilliland <[email protected]>Signed-off-by Bernd Kuhls <[email protected]>
[--SNIP--]
package/glmark2/0001-libpng16.patch line 3
Quoted 9 lines
package/glmark2/0001-libpng16.patch new file +3
-0@@ -0,0 +1,18 @@ +glmark2: Add support for libpng16 + +Patch sent upstream: https://github.com/glmark2/glmark2/issues/5
And it was accepted. :-)
So you may want to update the sha1 you use as _VERSIOPN to get rid of that patch.
[--SNIP--]
Quoted 11 lines
package/glmark2/Config.in new file +5
-0@@ -0,0 +1,37 @@ +config BR2_PACKAGE_GLMARK2_EGL_GLES + bool + default y + depends on BR2_PACKAGE_HAS_LIBEGL + depends on BR2_PACKAGE_HAS_LIBGLES
package/glmark2/Config.in line 15
Quoted 10 lines
package/glmark2/Config.in new file +10
-0+ depends on BR2_PACKAGE_MESA3D + +config BR2_PACKAGE_GLMARK2_GL + bool + default y + depends on BR2_PACKAGE_HAS_LIBGL + depends on BR2_PACKAGE_MESA3D + +comment "glmark2 needs an OpenGL or an openGL ES and EGL backend provided by mesa3d" + depends on BR2_INSTALL_LIBSTDCPP # mesa3d
No need, you already depend on mesa3d.
package/glmark2/Config.in line 18
Quoted 3 lines
package/glmark2/Config.in new file +3
-0+ depends on BR2_LARGEFILE + depends on BR2_PACKAGE_HAS_UDEV # mesa3d + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # mesa3d
Ditto x2.
package/glmark2/Config.in line 23
Quoted 5 lines
package/glmark2/Config.in new file +5
-0+ depends on !BR2_PACKAGE_GLMARK2_GL && !BR2_PACKAGE_GLMARK2_EGL_GLES + +config BR2_PACKAGE_GLMARK2 + bool "glmark2" + depends on BR2_INSTALL_LIBSTDCPP # mesa3d
Ditto.
package/glmark2/Config.in line 27
Quoted 4 lines
package/glmark2/Config.in new file +4
-0+ depends on BR2_LARGEFILE + depends on BR2_PACKAGE_GLMARK2_GL || BR2_PACKAGE_GLMARK2_EGL_GLES + depends on BR2_PACKAGE_HAS_UDEV # mesa3d + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # mesa3d
Ditto x2.
Quoted 17 lines
package/glmark2/Config.in new file +10
-0+ select BR2_PACKAGE_JPEG + select BR2_PACKAGE_LIBPNG + help + glmark2 is an OpenGL 2.0 and ES 2.0 benchmark. + + https://github.com/glmark2/glmark2 + +comment "glmark2 needs udev /dev management and a toolchain w/ C++, largefile, NPTL" + depends on !BR2_LARGEFILE || !BR2_INSTALL_LIBSTDCPP || \ + !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_PACKAGE_HAS_UDEVpackage/glmark2/glmark2.mk new file +1
-0@@ -0,0 +1,59 @@ +################################################################################
package/glmark2/glmark2.mk line 11
Quoted 10 lines
package/glmark2/glmark2.mk new file +10
-0+# +# glmark2 +# +################################################################################ + +GLMARK2_VERSION = 0005100d7221190720dc130605d07cbd56e83047 +GLMARK2_SITE = $(call github,glmark2,glmark2,$(GLMARK2_VERSION)) +GLMARK2_LICENSE = GPLv3+ SGIv1 +GLMARK2_LICENSE_FILES = COPYING COPYING.SGI +GLMARK2_DEPENDENCIES = host-pkgconf jpeg libpng mesa3d
Although this is currently correct because we really require mesa3d, I think it would be better to handle it with the virtual packages:
GLMARK2_DEPENDENCIES += \
$(if $(BR2_PACKAGE_HAS_LIBEGL),libegl) \
$(if $(BR2_PACKAGE_HAS_LIBGLES),libgles) \
$(if $(BR2_PACKAGE_HAS_LIBGL),libgl)And so on...
Currently, that would mean depending on mesa3d because of the Kconfig options, but if/when we introduce another GL/EGL/... provider that is appropriate, we'd just have to remove the depends on MESA3D in Kconfig.
Quoted 27 lines
package/glmark2/glmark2.mk new file +27
-0+ +ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y) +GLMARK2_DEPENDENCIES += xlib_libX11 +ifeq ($(BR2_PACKAGE_HAS_LIBEGL)$(BR2_PACKAGE_HAS_LIBGLES),yy) +GLMARK2_FLAVORS += x11-glesv2 +endif +ifeq ($(BR2_PACKAGE_HAS_LIBGL),y) +GLMARK2_FLAVORS += x11-gl +endif +endif + +ifeq ($(BR2_PACKAGE_HAS_LIBEGL)$(BR2_PACKAGE_HAS_LIBGLES),yy) +GLMARK2_FLAVORS += drm-glesv2 +endif + +ifeq ($(BR2_PACKAGE_HAS_LIBEGL)$(BR2_PACKAGE_HAS_LIBGL),yy) +GLMARK2_FLAVORS += drm-gl +endif + +ifeq ($(BR2_PACKAGE_WAYLAND)$(BR2_PACKAGE_HAS_LIBEGL)$(BR2_PACKAGE_HAS_LIBGLES),yyy) +GLMARK2_DEPENDENCIES += wayland +GLMARK2_FLAVORS += wayland-glesv2 +endif + +ifeq ($(BR2_PACKAGE_WAYLAND)$(BR2_PACKAGE_HAS_LIBGL),yy) +GLMARK2_DEPENDENCIES += wayland +GLMARK2_FLAVORS += wayland-gl
package/glmark2/glmark2.mk line 48
Quoted 10 lines
package/glmark2/glmark2.mk new file +10
-0+endif + +GLMARK2_CONF_OPTS += \ + --prefix=/usr \ + --with-flavors=$(subst $(space),$(comma),$(GLMARK2_FLAVORS)) + +define GLMARK2_CONFIGURE_CMDS + cd $(@D) && \ + $(TARGET_MAKE_ENV) $(GLMARK2_CONF_ENV) $(TARGET_CONFIGURE_OPTS) \ + ./waf configure $(GLMARK2_CONF_OPTS)
waf is, well, special. Did you have a look at package/samba4/samba4.mk for how we call waf in cross-compilation? It seems to be tricky enough... :-(
Regards,
Yann E. MORIN.
Quoted 18 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
1.7.10.4 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v5 1/1 glmark2: new package
[posted and mailed to Thomas]
"Yann E. MORIN" <[email protected]> wrote in news:20141207222234.GK10809 at free.fr:
Quoted 9 lines
Quoted 1 line
+GLMARK2_DEPENDENCIES = host-pkgconf jpeg libpng mesa3d
Although this is currently correct because we really require mesa3d, I think it would be better to handle it with the virtual packages:
GLMARK2_DEPENDENCIES += \ $(if $(BR2_PACKAGE_HAS_LIBEGL),libegl) \ $(if $(BR2_PACKAGE_HAS_LIBGLES),libgles) \ $(if $(BR2_PACKAGE_HAS_LIBGL),libgl)
Hi,
this leads to a problem when more than one provider for a virtual package is selected, Thomas send me this defconfig:
BR2_arm=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2 _TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/b r-arm-full-2014.11.tar.bz2"
BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_17=y BR2_TOOLCHAIN_EXTERNAL_LARGEFILE=y BR2_TOOLCHAIN_EXTERNAL_INET_IPV6=y BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set BR2_TOOLCHAIN_EXTERNAL_INET_RPC=y
BR2_TOOLCHAIN_EXTERNAL_CXX=y BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_PACKAGE_GLMARK2=y
BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_RPI_USERLAND=y
This is the configure error message:
Checking for 'egl' : yes Checking for 'glesv2' : yes Checking for 'libdrm' : not found
The configuration failed
Compilation of glmark2 fails because it uses rpi-userland as libegl/gles provider instead of mesa3d, mesa3d is not compiled at all :(
I will send an updated patch for glmark2 to fix its dependencies.
Regards, Bernd