summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Olbrich <m.olbrich@pengutronix.de>2013-09-11 17:14:14 +0200
committerMichael Olbrich <m.olbrich@pengutronix.de>2013-09-29 11:24:34 +0200
commit032f7e4f1fe4cb8213c39c3da519f9108852bd7a (patch)
tree76e491d12c92258c50aad099e0d222dbb1d3f2e3
parentd8b33c75c155c52d155bf17551577fc4ae960a46 (diff)
downloadptxdist-032f7e4f1fe4cb8213c39c3da519f9108852bd7a.tar.gz
ptxdist-032f7e4f1fe4cb8213c39c3da519f9108852bd7a.tar.xz
mesa-demos: version bump 8.0.1 -> 8.1.0
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r--patches/mesa-demos-8.1.0/0001-eglut_wayland-Update-to-the-Wayland-1.0-API.patch176
-rw-r--r--patches/mesa-demos-8.1.0/series1
-rw-r--r--rules/mesa-demos.in83
-rw-r--r--rules/mesa-demos.make33
4 files changed, 289 insertions, 4 deletions
diff --git a/patches/mesa-demos-8.1.0/0001-eglut_wayland-Update-to-the-Wayland-1.0-API.patch b/patches/mesa-demos-8.1.0/0001-eglut_wayland-Update-to-the-Wayland-1.0-API.patch
new file mode 100644
index 000000000..a80cca5cc
--- /dev/null
+++ b/patches/mesa-demos-8.1.0/0001-eglut_wayland-Update-to-the-Wayland-1.0-API.patch
@@ -0,0 +1,176 @@
+From 8b30a4dfb4ddcf5470afd3ff36a632128b32a98d Mon Sep 17 00:00:00 2001
+From: Neil Roberts <neil@linux.intel.com>
+Date: Wed, 11 Sep 2013 19:33:32 +0100
+Subject: [PATCH] eglut_wayland: Update to the Wayland 1.0 API
+
+This fixes build errors with the eglut_wayland backend. In particular
+it now uses the wl_registry and the new main loop mechanism from the
+Wayland 1.0 API.
+---
+ src/egl/eglut/eglut_wayland.c | 108 ++++++++++++++++++++++++++++++++++++------
+ 1 file changed, 94 insertions(+), 14 deletions(-)
+
+diff --git a/src/egl/eglut/eglut_wayland.c b/src/egl/eglut/eglut_wayland.c
+index 61207d2..25a51bc 100644
+--- a/src/egl/eglut/eglut_wayland.c
++++ b/src/egl/eglut/eglut_wayland.c
+@@ -1,6 +1,10 @@
+ #include <wayland-client.h>
+ #include <wayland-egl.h>
+
++#include <poll.h>
++#include <errno.h>
++#include <string.h>
++
+ #include "eglutint.h"
+
+ struct display {
+@@ -20,42 +24,74 @@ static struct display display = {0, };
+ static struct window window = {0, };
+
+ static void
+-display_handle_global(struct wl_display *display, uint32_t id,
+- const char *interface, uint32_t version, void *data)
++registry_handle_global(void *data, struct wl_registry *registry, uint32_t id,
++ const char *interface, uint32_t version)
+ {
+ struct display *d = data;
+
+ if (strcmp(interface, "wl_compositor") == 0) {
+ d->compositor =
+- wl_display_bind(display, id, &wl_compositor_interface);
++ wl_registry_bind(registry, id, &wl_compositor_interface, 1);
+ } else if (strcmp(interface, "wl_shell") == 0) {
+- d->shell = wl_display_bind(display, id, &wl_shell_interface);
++ d->shell = wl_registry_bind(registry, id, &wl_shell_interface, 1);
+ }
+ }
+
++static void
++registry_handle_global_remove(void *data, struct wl_registry *registry,
++ uint32_t name)
++{
++}
++
++static const struct wl_registry_listener registry_listener = {
++ registry_handle_global,
++ registry_handle_global_remove
++};
++
++static void
++sync_callback(void *data, struct wl_callback *callback, uint32_t serial)
++{
++ int *done = data;
++
++ *done = 1;
++ wl_callback_destroy(callback);
++}
++
++static const struct wl_callback_listener sync_listener = {
++ sync_callback
++};
++
+ static int
+-event_mask_update(uint32_t mask, void *data)
++wayland_roundtrip(struct wl_display *display)
+ {
+- struct display *d = data;
++ struct wl_callback *callback;
++ int done = 0, ret = 0;
+
+- d->mask = mask;
++ callback = wl_display_sync(display);
++ wl_callback_add_listener(callback, &sync_listener, &done);
++ while (ret != -1 && !done)
++ ret = wl_display_dispatch(display);
+
+- return 0;
++ if (!done)
++ wl_callback_destroy(callback);
++
++ return ret;
+ }
+
+ void
+ _eglutNativeInitDisplay(void)
+ {
++ struct wl_registry *registry;
++
+ _eglut->native_dpy = display.display = wl_display_connect(NULL);
+
+ if (!_eglut->native_dpy)
+ _eglutFatal("failed to initialize native display");
+
+- wl_display_add_global_listener(_eglut->native_dpy,
+- display_handle_global, &display);
+-
+- wl_display_get_fd(_eglut->native_dpy, event_mask_update, &display);
+- wl_display_iterate(_eglut->native_dpy, WL_DISPLAY_READABLE);
++ registry = wl_display_get_registry(_eglut->native_dpy);
++ wl_registry_add_listener(registry, &registry_listener, &display);
++ wayland_roundtrip(_eglut->native_dpy);
++ wl_registry_destroy(registry);
+
+ _eglut->surface_type = EGL_WINDOW_BIT;
+ }
+@@ -124,12 +160,56 @@ draw(void *data, struct wl_callback *callback, uint32_t time)
+ void
+ _eglutNativeEventLoop(void)
+ {
++ struct pollfd pollfd;
++ int ret;
++
+ draw(&window, NULL, 0);
+
++ pollfd.fd = wl_display_get_fd(display.display);
++ pollfd.events = POLLIN;
++ pollfd.revents = 0;
++
+ while (1) {
+- wl_display_iterate(display.display, display.mask);
++ wl_display_dispatch_pending(display.display);
+
+ if (_eglut->idle_cb)
+ _eglut->idle_cb();
++
++ ret = wl_display_flush(display.display);
++ if (ret < 0 && errno == EAGAIN)
++ pollfd.events |= POLLOUT;
++ else if (ret < 0)
++ break;
++
++ if (poll(&pollfd, 1, _eglut->redisplay ? 0 : -1) == -1)
++ break;
++
++ if (pollfd.revents & (POLLERR | POLLHUP))
++ break;
++
++ if (pollfd.revents & POLLIN) {
++ ret = wl_display_dispatch(display.display);
++ if (ret == -1)
++ break;
++ }
++
++ if (pollfd.revents & POLLOUT) {
++ ret = wl_display_flush(display.display);
++ if (ret == 0)
++ pollfd.events &= ~POLLOUT;
++ else if (ret == -1 && errno != EAGAIN)
++ break;
++ }
++
++ if (_eglut->redisplay) {
++ struct eglut_window *win = _eglut->current;
++
++ _eglut->redisplay = 0;
++
++ if (win->display_cb)
++ win->display_cb();
++
++ eglSwapBuffers(_eglut->dpy, win->surface);
++ }
+ }
+ }
+--
+1.8.4.rc3
+
diff --git a/patches/mesa-demos-8.1.0/series b/patches/mesa-demos-8.1.0/series
new file mode 100644
index 000000000..6e99a150d
--- /dev/null
+++ b/patches/mesa-demos-8.1.0/series
@@ -0,0 +1 @@
+0001-eglut_wayland-Update-to-the-Wayland-1.0-API.patch
diff --git a/rules/mesa-demos.in b/rules/mesa-demos.in
index 8e107948a..d244d02a9 100644
--- a/rules/mesa-demos.in
+++ b/rules/mesa-demos.in
@@ -1,13 +1,40 @@
-## SECTION=multimedia_xorg_support_libs
+## SECTION=multimedia_libs
menuconfig MESA_DEMOS
bool
select MESALIB
select GLEW
+ select GLU
+ select MESALIB_EGL if MESA_DEMOS_EGL
+ select MESALIB_GLES1 if MESA_DEMOS_GLES1
+ select MESALIB_GLES2 if MESA_DEMOS_GLES2
+ select MESALIB_OPENVG if MESA_DEMOS_VG
+ select MESALIB_EGL_WAYLAND if MESA_DEMOS_WAYLAND
+ select XORG_LIB_X11 if MESA_DEMOS_X11
+ select XORG_LIB_XEXT if MESA_DEMOS_X11
prompt "mesa tools & demos "
if MESA_DEMOS
+config MESA_DEMOS_GLES1
+ bool
+
+config MESA_DEMOS_EGL
+ bool
+
+config MESA_DEMOS_X11
+ bool
+
+config MESA_DEMOS_WAYLAND
+ bool
+
+menuconfig MESA_DEMOS_X
+ bool
+ select MESA_DEMOS_X11
+ prompt "X demos"
+
+if MESA_DEMOS_X11
+
config MESA_DEMOS_CORENDER
bool
prompt "corender"
@@ -88,6 +115,10 @@ config MESA_DEMOS_PBINFO
bool
prompt "pbinfo"
+config MESA_DEMOS_SHAPE
+ bool
+ prompt "shape"
+
config MESA_DEMOS_SHAREDTEX
bool
prompt "sharedtex"
@@ -111,5 +142,55 @@ config MESA_DEMOS_XFONT
config MESA_DEMOS_XROTFONTDEMO
bool
prompt "xrotfontdemo"
+endif
+
+menuconfig MESA_DEMOS_GLES2
+ bool
+ select MESA_DEMOS_EGL
+ prompt "OpenGL ES2 demos"
+
+if MESA_DEMOS_GLES2
+
+config MESA_DEMOS_ES2_INFO
+ bool
+ prompt "es2_info"
+
+config MESA_DEMOS_ES2GEARS_SCREEN
+ bool
+ prompt "es2gears_screen"
+
+config MESA_DEMOS_ES2GEARS_X11
+ bool
+ prompt "es2gears_x11"
+
+config MESA_DEMOS_ES2TRI
+ bool
+ prompt "es2tri"
+
+config MESA_DEMOS_ES2GEARS_WAYLAND
+ bool
+ select MESA_DEMOS_WAYLAND
+ prompt "es2gears_wayland"
+
+endif
+
+menuconfig MESA_DEMOS_VG
+ bool
+ select MESA_DEMOS_GLES1
+ select MESA_DEMOS_EGL
+ select MESA_DEMOS_X11
+ prompt "OpenVG demos"
+
+if MESA_DEMOS_VG
+
+config MESA_DEMOS_VGIMAGE2TEX
+ bool
+ prompt "vgimage2tex"
+
+config MESA_DEMOS_TEX2VGIMAGE
+ bool
+ prompt "tex2vgimage"
+
+endif
endif
diff --git a/rules/mesa-demos.make b/rules/mesa-demos.make
index 25bfbdf2f..d2d6de617 100644
--- a/rules/mesa-demos.make
+++ b/rules/mesa-demos.make
@@ -16,8 +16,8 @@ PACKAGES-$(PTXCONF_MESA_DEMOS) += mesa-demos
#
# Paths and names
#
-MESA_DEMOS_VERSION := 8.0.1
-MESA_DEMOS_MD5 := 320c2a4b6edc6faba35d9cb1e2a30bf4
+MESA_DEMOS_VERSION := 8.1.0
+MESA_DEMOS_MD5 := 9df33ba69a26bbfbc7c8148602e59542
MESA_DEMOS := mesa-demos-$(MESA_DEMOS_VERSION)
MESA_DEMOS_SUFFIX := tar.bz2
MESA_DEMOS_URL := ftp://ftp.freedesktop.org/pub/mesa/demos/$(MESA_DEMOS_VERSION)/$(MESA_DEMOS).$(MESA_DEMOS_SUFFIX)
@@ -29,10 +29,29 @@ MESA_DEMOS_LICENSE := unknown
# Prepare
# ----------------------------------------------------------------------------
+MESA_DEMOS_CONF_ENV := \
+ $(CROSS_ENV) \
+ ac_cv_header_GL_glut_h=no \
+ ac_cv_lib_glut_glutInit=no
+
#
# autoconf
#
MESA_DEMOS_CONF_TOOL := autoconf
+MESA_DEMOS_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --disable-static \
+ --$(call ptx/endis, PTXCONF_MESA_DEMOS_EGL)-egl \
+ --$(call ptx/endis, PTXCONF_MESA_DEMOS_GLES1)-gles1 \
+ --$(call ptx/endis, PTXCONF_MESA_DEMOS_GLES2)-gles2 \
+ --$(call ptx/endis, PTXCONF_MESA_DEMOS_VG)-vg \
+ --disable-osmesa \
+ --disable-libdrm \
+ --$(call ptx/endis, PTXCONF_MESA_DEMOS_X11)-x11 \
+ --$(call ptx/endis, PTXCONF_MESA_DEMOS_WAYLAND)-wayland \
+ --disable-gbm \
+ --disable-freetype2 \
+
# ----------------------------------------------------------------------------
# Target-Install
@@ -41,7 +60,7 @@ MESA_DEMOS_CONF_TOOL := autoconf
MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_CORENDER) += corender
MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_GLSYNC) += glsync
MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_GLTHREADS) += glthreads
-MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_GLXCONTEXTS) += glxcontexts
+MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_GLXCONTEXTS) += glxcontexts
MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_GLXDEMO) += glxdemo
MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_GLXGEARS) += glxgears
MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_GLXGEARS_FBCONFIG) += glxgears_fbconfig
@@ -58,12 +77,20 @@ MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_OFFSET) += offset
MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_OVERLAY) += overlay
MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_PBDEMO) += pbdemo
MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_PBINFO) += pbinfo
+MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_SHAPE) += shape
MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_SHAREDTEX) += sharedtex
MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_SHAREDTEX_MT) += sharedtex_mt
MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_TEXTURE_FROM_PIXMAP)+= texture_from_pixmap
MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_WINCOPY) += wincopy
MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_XFONT) += xfont
MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_XROTFONTDEMO) += xrotfontdemo
+MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_ES2_INFO) += es2_info
+MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_ES2GEARS_SCREEN) += es2gears_screen
+MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_ES2GEARS_WAYLAND) += es2gears_wayland
+MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_ES2GEARS_X11) += es2gears_x11
+MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_ES2TRI) += es2tri
+MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_TEX2VGIMAGE) += tex2vgimage
+MESA_DEMOS_BIN-$(PTXCONF_MESA_DEMOS_VGIMAGE2TEX) += vgimage2tex
$(STATEDIR)/mesa-demos.targetinstall:
@$(call targetinfo)