diff options
author | Michael Olbrich <m.olbrich@pengutronix.de> | 2013-09-11 17:14:14 +0200 |
---|---|---|
committer | Michael Olbrich <m.olbrich@pengutronix.de> | 2013-09-29 11:24:34 +0200 |
commit | 032f7e4f1fe4cb8213c39c3da519f9108852bd7a (patch) | |
tree | 76e491d12c92258c50aad099e0d222dbb1d3f2e3 | |
parent | d8b33c75c155c52d155bf17551577fc4ae960a46 (diff) | |
download | ptxdist-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.patch | 176 | ||||
-rw-r--r-- | patches/mesa-demos-8.1.0/series | 1 | ||||
-rw-r--r-- | rules/mesa-demos.in | 83 | ||||
-rw-r--r-- | rules/mesa-demos.make | 33 |
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, ®istry_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) |