Skip to contentSkip to conversation

package/python-numpy: add host variant for piglit

PATCH Superseded Romain Naour 2 participants 8 messages Dec 25, 2017 – Jan 5, 2018

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/3 package/python-numpy: add host variant for piglit

host-python-numpy is required by piglit buildsystem for crosscompiling.

---
 package/python-numpy/python-numpy.mk | 1 +
 1 file changed, 1 insertion(+)
package/python-numpy/python-numpy.mk +1 -0
index d0d38371a3..35878ac129 100644
@@ -31,3 +31,4 @@ endef
 PYTHON_NUMPY_INSTALL_STAGING = YES
 
 $(eval $(python-package))
+$(eval $(host-python-package))
Signature · 1 line
2.14.3
#1 lore raw

PATCH 2/3 package/waffle: new package

Backport an upstream patch fixing a build issue with musl toolchains. Add a new patch fixing build with Wayand without X11.

---
 DEVELOPERS                                         |  1 +
 package/Config.in                                  |  1 +
 ...-threads-Use-PTHREAD_MUTEX_RECURSIVE-by-d.patch | 54 ++++++++++++++++++++++
 ...rd-cflags-from-.pc-files-to-waffle-cflags.patch | 40 ++++++++++++++++
 package/waffle/Config.in                           | 30 ++++++++++++
 package/waffle/waffle.hash                         |  3 ++
 package/waffle/waffle.mk                           | 48 +++++++++++++++++++
 7 files changed, 177 insertions(+)
 create mode 100644 package/waffle/0001-third_party-threads-Use-PTHREAD_MUTEX_RECURSIVE-by-d.patch
 create mode 100644 package/waffle/0002-cmake-forward-cflags-from-.pc-files-to-waffle-cflags.patch
 create mode 100644 package/waffle/Config.in
 create mode 100644 package/waffle/waffle.hash
 create mode 100644 package/waffle/waffle.mk
DEVELOPERS +1 -0
index 9f4f282203..6e2d312452 100644
@@ -1477,6 +1477,7 @@ F:	package/supertux/
 F:	package/supertuxkart/
 F:	package/terminology/
 F:	package/upower/
+F:	package/waffle/
 F:	package/xenomai/
 
 N:	Romain Perier <[email protected]>
package/Config.in +1 -0
index bd39a374f0..ae920c455b 100644
@@ -1155,6 +1155,7 @@ menu "Graphics"
 	source "package/poppler/Config.in"
 	source "package/powervr/Config.in"
 	source "package/tiff/Config.in"
+	source "package/waffle/Config.in"
 	source "package/wayland/Config.in"
 	source "package/wayland-protocols/Config.in"
 	source "package/waylandpp/Config.in"
package/waffle/0001-third_party-threads-Use-PTHREAD_MUTEX_RECURSIVE-by-d.patch new file +54 -0

54 lines not on this page · raw message

package/waffle/0002-cmake-forward-cflags-from-.pc-files-to-waffle-cflags.patch new file +40 -0
new file mode 100644
index 0000000000..ffc1b5b8b1
@@ -0,0 +1,40 @@
+From 8b0ae49c8bea78df73c3ecae0059d54a95c561fa Mon Sep 17 00:00:00 2001
+From: Romain Naour <[email protected]>
+Date: Sun, 24 Dec 2017 00:11:45 +0100
+Subject: [PATCH] cmake: forward cflags from *.pc files to waffle cflags
+
+When building mesa egl without x11 and gles2 the headers need a
+MESA_EGL_NO_X11_HEADERS define to avoid including X11 headers.
+
+This define MESA_EGL_NO_X11_HEADERS  is lost while building waffle
+since CGLAGS defined by pc files are not used.
+
+MESA_EGL_NO_X11_HEADERS is defined in CFLAGS from egl.pc.
+
+Signed-off-by: Romain Naour <[email protected]>
+---
+ src/waffle/CMakeLists.txt | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/src/waffle/CMakeLists.txt b/src/waffle/CMakeLists.txt
+index d76e029..2ff72c8 100644
+--- a/src/waffle/CMakeLists.txt
++++ b/src/waffle/CMakeLists.txt
+@@ -5,6 +5,14 @@
+ add_definitions(
+     -DWAFFLE_API_VERSION=${waffle_api_version}
+     -DWAFFLE_API_EXPERIMENTAL
++    ${egl_CFLAGS}
++    ${gbm_CFLAGS}
++    ${gl_CFLAGS}
++    ${GLEXT_CFLAGS}
++    ${libudev_CFLAGS}
++    ${wayland-client_CFLAGS}
++    ${wayland-egl_CFLAGS}
++    ${x11-xcb_CFLAGS}
+     )
+ 
+ include_directories(
+-- 
+2.14.3
+
package/waffle/Config.in new file +30 -0
new file mode 100644
index 0000000000..a9799ef43e
@@ -0,0 +1,30 @@
+comment "waffle needs an OpenGL GL or EGL provider"
+	depends on BR2_PACKAGE_XORG7 || BR2_PACKAGE_WAYLAND
+	depends on !BR2_PACKAGE_HAS_LIBGL && !BR2_PACKAGE_HAS_LIBEGL
+
+config BR2_PACKAGE_WAFFLE
+	bool "waffle"
+	depends on BR2_PACKAGE_XORG7 || BR2_PACKAGE_WAYLAND
+	depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBEGL
+	select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
+	help
+	  Waffle is a cross-platform library that allows one to defer
+	  selection of an OpenGL API and of window system until
+	  runtime. For example, on Linux, Waffle enables an application
+	  to select X11/EGL with an OpenGL 3.3 core profile, Wayland
+	  with OpenGL ES2, and other window system / API combinations.
+
+	  Waffle's immediate goal is to enable Piglit [1] to test
+	  multiple OpenGL flavors in a cross-platform way, and to allow
+	  each Piglit test to choose its OpenGL API and window system
+	  at runtime. A future goal is to enable the ability to record
+	  (with another tool such APITrace [2]) an application's OpenGL
+	  calls on one operating system or window system, and then
+	  replay that trace on a different system.
+
+	  For more information, visit to Waffle's website.
+
+	  [1] http://piglit.freedesktop.org
+	  [2] http://github.com/apitrace/apitrace#readme
+
+	  http://www.waffle-gl.org
package/waffle/waffle.hash new file +3 -0
new file mode 100644
index 0000000000..5dfb976f2f
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 d662f6743f688dc5ea4b7d29f558eb54bd8f57350080f04a006693d22e5d1d5b  waffle-v1.5.2.tar.gz
+sha256 630844d1911c8a1b7b888a1de9097c4860b7e381362fd5aa64141d58ab7ecc9b  LICENSE.txt
package/waffle/waffle.mk new file +48 -0

48 lines not on this page · raw message

Signature · 1 line
2.14.3
#2 lore raw

PATCH 2/3 package/waffle: new package

Hello,

Quoted 6 lines · Romain Naour
package/waffle/Config.in new file +0 -0
new file mode 100644
index 0000000000..a9799ef43e

package/waffle/Config.in line 9

Quoted 9 lines
package/waffle/Config.in new file +9 -0
@@ -0,0 +1,30 @@
+comment "waffle needs an OpenGL GL or EGL provider"
+	depends on BR2_PACKAGE_XORG7 || BR2_PACKAGE_WAYLAND
+	depends on !BR2_PACKAGE_HAS_LIBGL && !BR2_PACKAGE_HAS_LIBEGL
+
+config BR2_PACKAGE_WAFFLE
+	bool "waffle"
+	depends on BR2_PACKAGE_XORG7 || BR2_PACKAGE_WAYLAND
+	depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBEGL
+	select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7

I'm curious: why are you selecting xlib_libX11, but not libxcb, while both seem to be needed for X11 support ?

Other than this question, looks good to me.

Thanks!

Thomas

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

PATCH 2/3 package/waffle: new package

Hi Thomas,

Le 29/12/2017 ? 23:25, Thomas Petazzoni a ?crit?:

Quoted 13 lines

Hello,

Quoted 10 lines · Romain Naour
package/waffle/Config.in new file +4 -0
new file mode 100644
index 0000000000..a9799ef43e
@@ -0,0 +1,30 @@
+comment "waffle needs an OpenGL GL or EGL provider"
+	depends on BR2_PACKAGE_XORG7 || BR2_PACKAGE_WAYLAND
+	depends on !BR2_PACKAGE_HAS_LIBGL && !BR2_PACKAGE_HAS_LIBEGL
+
Quoted 8 lines

package/waffle/Config.in line 9

Quoted 5 lines
package/waffle/Config.in new file +5 -0
+config BR2_PACKAGE_WAFFLE
+	bool "waffle"
+	depends on BR2_PACKAGE_XORG7 || BR2_PACKAGE_WAYLAND
+	depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBEGL
+	select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7

I'm curious: why are you selecting xlib_libX11, but not libxcb, while both seem to be needed for X11 support ?

Indeed but libxcb is selected by xlib_libX11 anyway.

I'll add it for the v2.

Best regards,
Romain

Quoted 7 lines

Other than this question, looks good to me.

Thanks!

Thomas

#4 lore raw

PATCH 2/3 package/waffle: new package

In reply to Romain Naour

Hello,

In fact, another question.

package/waffle/Config.in line 8

Quoted 4 lines · Romain Naour
package/waffle/Config.in new file +4 -0
+config BR2_PACKAGE_WAFFLE
+	bool "waffle"
+	depends on BR2_PACKAGE_XORG7 || BR2_PACKAGE_WAYLAND
+	depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBEGL

You require libgl *or* libegl. What about OpenGL ES ?

Indeed, when you have OpenGL ES, you generally have EGL support as well, but it seems weird that an optional dependency on OpenGL ES is not expressed. I am missing something ?

Thomas

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

PATCH 2/3 package/waffle: new package

Le 29/12/2017 ? 23:27, Thomas Petazzoni a ?crit?:

Quoted 13 lines

Hello,

In fact, another question.

package/waffle/Config.in line 8

Quoted 4 lines · Romain Naour
package/waffle/Config.in new file +4 -0
+config BR2_PACKAGE_WAFFLE
+	bool "waffle"
+	depends on BR2_PACKAGE_XORG7 || BR2_PACKAGE_WAYLAND
+	depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBEGL

You require libgl *or* libegl. What about OpenGL ES ?

Quoted 3 lines

Indeed, when you have OpenGL ES, you generally have EGL support as well, but it seems weird that an optional dependency on OpenGL ES is not expressed. I am missing something ?

It's not expressed in the build system.

We need to enable one of these option while configuring Waffle:
waffle_has_glx (OpenGL with X11)
waffle_has_wayland (egl with wayland)
waffle_has_x11_egl (egl with X11)
waffle_has_gbm (mesa3d with EGL support)

So, Waffle can't be build with only OpenGLES.

Looking at the code, libGLESv2.so.2 library is loaded at runtime with dlopen(). I'm not sure how Waffle behave when this library is missing (for example with the glx only case).

Best regards,
Romain

Quoted 3 lines

Thomas

#6 lore raw

PATCH 3/3 package/piglit: new package

In reply to Romain Naour

Piglit is an open-source test suite for OpenGL implementations. It's an python3 script based around several tools like glxinfo, wflinfo, dmesg.

Even though waffle support can be replaced by freeglut, using pliglit with waffle is recommended since freeglut will be replaced by waffle.

---
Bernd, I'm Cc you since you're probably interested by piglit to test new mesa3d version.

---
 DEVELOPERS                 |  1 +
 package/Config.in          |  1 +
 package/piglit/Config.in   | 35 +++++++++++++++++++++++
 package/piglit/piglit.hash |  6 ++++
 package/piglit/piglit.mk   | 69 ++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 112 insertions(+)
 create mode 100644 package/piglit/Config.in
 create mode 100644 package/piglit/piglit.hash
 create mode 100644 package/piglit/piglit.mk
DEVELOPERS +1 -0
index 6e2d312452..abbb99a022 100644
@@ -1471,6 +1471,7 @@ F:	package/minetest/
 F:	package/minetest-game/
 F:	package/openpowerlink/
 F:	package/physfs/
+F:	package/piglit/
 F:	package/solarus/
 F:	package/stress-ng/
 F:	package/supertux/
package/Config.in +1 -0
index ae920c455b..b12227b684 100644
@@ -113,6 +113,7 @@ menu "Debugging, profiling and benchmark"
 	source "package/nmon/Config.in"
 	source "package/oprofile/Config.in"
 	source "package/pax-utils/Config.in"
+	source "package/piglit/Config.in"
 	source "package/pv/Config.in"
 	source "package/racehound/Config.in"
 	source "package/ramsmp/Config.in"
package/piglit/Config.in new file +35 -0
new file mode 100644
index 0000000000..eaa19c17ba
@@ -0,0 +1,35 @@
+config BR2_PACKAGE_PIGLIT
+	bool "piglit"
+	depends on BR2_PACKAGE_XORG7 || BR2_PACKAGE_WAYLAND
+	depends on BR2_PACKAGE_HAS_LIBGL || BR2_PACKAGE_HAS_LIBEGL
+	depends on BR2_PACKAGE_PYTHON3 # python3 only script
+	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
+	select BR2_PACKAGE_MESA3D_DEMOS # glxinfo
+	select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_XPROTO_GLPROTO if BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_ZLIB
+	select BR2_PACKAGE_LIBDRM if BR2_PACKAGE_HAS_LIBGL
+	select BR2_PACKAGE_LIBPNG
+	select BR2_PACKAGE_LIBXKBCOMMON if BR2_PACKAGE_WAYLAND
+	select BR2_PACKAGE_PYTHON_MAKO
+	select BR2_PACKAGE_PYTHON_NUMPY
+	select BR2_PACKAGE_PYTHON_SIX
+	select BR2_PACKAGE_PYTHON3_BZIP2
+	select BR2_PACKAGE_PYTHON3_PYEXPAT
+	select BR2_PACKAGE_PYTHON3_XZ
+	select BR2_PACKAGE_PYTHON3_ZLIB
+	select BR2_PACKAGE_UTIL_LINUX # runtime dependency
+	select BR2_PACKAGE_UTIL_LINUX_BINARIES # require real dmesg tool
+	select BR2_PACKAGE_WAFFLE # wflinfo
+	help
+	  Piglit is an open-source test suite for OpenGL
+	  implementations.
+
+	  https://piglit.freedesktop.org
+
+comment "piglit needs an OpenGL GL or EGL provider"
+	depends on BR2_PACKAGE_XORG7 || BR2_PACKAGE_WAYLAND
+	depends on BR2_PACKAGE_PYTHON3
+	depends on BR2_PACKAGE_PYTHON_NUMPY_ARCH_SUPPORTS
+	depends on !BR2_PACKAGE_HAS_LIBGL && !BR2_PACKAGE_HAS_LIBEGL
package/piglit/piglit.hash new file +6 -0
new file mode 100644
index 0000000000..a3b39f862e
@@ -0,0 +1,6 @@
+# Locally calculated
+sha256 e26070ab10bbe4583543d076a495731888e3be9933e4907a62f25b102ad65023  dl/piglit-75ba8aea0e6eff0bc30821df9640ee4053dd98b6.tar.gz
+sha256 dcc398730859aee7cc1d6aa57f526f8d181b47bb3a49830e85b5723d5bc2c3bc  COPYING
+sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  licences/GPL-2
+sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903  licences/GPL-3
+sha256 b7993225104d90ddd8024fd838faf300bea5e83d91203eab98e29512acebd69c  licences/LGPL-2
package/piglit/piglit.mk new file +69 -0

69 lines not on this page · raw message

Signature · 1 line
2.14.3
#7 lore raw

PATCH 3/3 package/piglit: new package

Le 25/12/2017 ? 16:49, Romain Naour a ?crit?:

Quoted 14 lines

Piglit is an open-source test suite for OpenGL implementations. It's an python3 script based around several tools like glxinfo, wflinfo, dmesg.

Even though waffle support can be replaced by freeglut, using pliglit with waffle is recommended since freeglut will be replaced by waffle.

---
Bernd, I'm Cc you since you're probably interested by piglit to test new mesa3d version.
---

[...]

package/piglit/piglit.hash line 2

Quoted 5 lines
package/piglit/piglit.hash new file +2 -0
@@ -0,0 +1,6 @@
+# Locally calculated
+sha256 e26070ab10bbe4583543d076a495731888e3be9933e4907a62f25b102ad65023  dl/piglit-75ba8aea0e6eff0bc30821df9640ee4053dd98b6.tar.gz
								           ^^^^

Sorry, my usual copy past error while generating a hash from the download directory...

Please remove before testing.

Best regards,
Romain

Quoted 4 lines
package/piglit/piglit.hash new file +4 -0
+sha256 dcc398730859aee7cc1d6aa57f526f8d181b47bb3a49830e85b5723d5bc2c3bc  COPYING
+sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  licences/GPL-2
+sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903  licences/GPL-3
+sha256 b7993225104d90ddd8024fd838faf300bea5e83d91203eab98e29512acebd69c  licences/LGPL-2