[OE-core] [PATCH 4/5] mesa-demos: Upgrade 8.2.0 -> 8.3.0

Jussi Kukkonen jussi.kukkonen at intel.com
Mon May 23 12:44:07 UTC 2016


Drop patches included in upstream and the EGL_MESA_screen_surface
extension fixes as the relevant code was removed.

Rebase other patches.

Signed-off-by: Jussi Kukkonen <jussi.kukkonen at intel.com>
---

There's quite a bit of churn and our patching here was pretty complex
(patches on top of patches on top of patches): CCing people who have
recently touched the recipe as a "FYI".


 ...mplement-with-AC_WITH-glut-so-that-withou.patch |   57 -
 ...llow-to-disable-demos-which-require-GLEW-.patch |  119 +-
 ...hen-EGL_MESA_screen_surface-extension-isn.patch |  267 ----
 ...ay-for-EGL_MESA_screen_surface-extension-.patch |   41 -
 .../0007-Install-few-more-test-programs.patch      |   53 +-
 ...10-sharedtex_mt-fix-rendering-thread-hang.patch |   43 -
 ...dependant-on-obsolete-MESA_screen_surface.patch | 1592 --------------------
 .../{mesa-demos_8.2.0.bb => mesa-demos_8.3.0.bb}   |   27 +-
 8 files changed, 59 insertions(+), 2140 deletions(-)
 delete mode 100644 meta/recipes-graphics/mesa/mesa-demos/0002-Correctly-implement-with-AC_WITH-glut-so-that-withou.patch
 delete mode 100644 meta/recipes-graphics/mesa/mesa-demos/0005-Fix-build-when-EGL_MESA_screen_surface-extension-isn.patch
 delete mode 100644 meta/recipes-graphics/mesa/mesa-demos/0006-Query-display-for-EGL_MESA_screen_surface-extension-.patch
 delete mode 100644 meta/recipes-graphics/mesa/mesa-demos/0010-sharedtex_mt-fix-rendering-thread-hang.patch
 delete mode 100644 meta/recipes-graphics/mesa/mesa-demos/0011-drop-demos-dependant-on-obsolete-MESA_screen_surface.patch
 rename meta/recipes-graphics/mesa/{mesa-demos_8.2.0.bb => mesa-demos_8.3.0.bb} (68%)

diff --git a/meta/recipes-graphics/mesa/mesa-demos/0002-Correctly-implement-with-AC_WITH-glut-so-that-withou.patch b/meta/recipes-graphics/mesa/mesa-demos/0002-Correctly-implement-with-AC_WITH-glut-so-that-withou.patch
deleted file mode 100644
index 09054cb..0000000
--- a/meta/recipes-graphics/mesa/mesa-demos/0002-Correctly-implement-with-AC_WITH-glut-so-that-withou.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 36829a8d7ad2888515fbee95c2a70b3d636d7538 Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton at intel.com>
-Date: Wed, 9 Jul 2014 14:30:33 +0200
-Subject: [PATCH 2/9] Correctly implement with AC_WITH(glut) so that
- --without-glut works.
-
-Signed-off-by: Ross Burton <ross.burton at intel.com>
-Upstream-Status: Submitted (https://patchwork.freedesktop.org/patch/64417/)
-
----
- configure.ac | 26 +++++++++++++++-----------
- 1 file changed, 15 insertions(+), 11 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index c4ee12b..9445424 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -67,21 +67,25 @@ DEMO_CFLAGS="$DEMO_CFLAGS $GL_CFLAGS"
- DEMO_LIBS="$DEMO_LIBS $GL_LIBS"
- 
- dnl Check for GLUT
--GLUT_CFLAGS=""
--GLUT_LIBS=-lglut
--glut_enabled=yes
-+glut_enabled=no
- AC_ARG_WITH([glut],
- 	[AS_HELP_STRING([--with-glut=DIR],
- 			[glut install directory])],
- 	[GLUT_CFLAGS="-I$withval/include"
--	 GLUT_LIBS="-L$withval/lib -lglut"])
--AC_CHECK_HEADER([GL/glut.h],
--		[],
--		[glut_enabled=no])
--AC_CHECK_LIB([glut],
--		[glutInit],
--		[],
--		[glut_enabled=no])
-+	 GLUT_LIBS="-L$withval/lib -lglut"],
-+	[GLUT_CFLAGS=""
-+	 GLUT_LIBS="-lglut"]
-+        )
-+AS_IF([test "x$with_glut" != xno],
-+      [AC_CHECK_HEADER([GL/glut.h],
-+                       [],
-+                       [glut_enabled=no])
-+       AC_CHECK_LIB([glut],
-+                    [glutInit],
-+                    [],
-+                    [glut_enabled=no])
-+       glut_enabled=yes
-+])
- 
- dnl Check for FreeGLUT 2.6 or later
- AC_EGREP_HEADER([glutInitContextProfile],
--- 
-2.0.0
-
diff --git a/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch b/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch
index 6b58c2b..f6b59a1 100644
--- a/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch
+++ b/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch
@@ -1,8 +1,7 @@
-From b25e9c675cf560b8b037dc855c6b3b1d09957867 Mon Sep 17 00:00:00 2001
+From 779438770bedf3d53e6ad8f7cd6889b7f50daf3b Mon Sep 17 00:00:00 2001
 From: Martin Jansa <Martin.Jansa at gmail.com>
 Date: Wed, 9 Jul 2014 14:23:41 +0200
-Subject: [PATCH 3/9] configure: Allow to disable demos which require GLEW or
- GLU
+Subject: [PATCH] configure: Allow to disable demos which require GLEW or GLU
 
 * in some systems without X11 support we don't have GLEW, but
   mesa-demos are still useful
@@ -10,17 +9,20 @@ Subject: [PATCH 3/9] configure: Allow to disable demos which require GLEW or
 Upstream-Status: Pending
 
 Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
+
+Port to 8.3.0
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen at intel.com>
 ---
  configure.ac                  | 49 ++++++++++++++++++++---------
- src/Makefile.am               | 14 ++++++---
+ src/Makefile.am               | 18 ++++++++---
  src/demos/Makefile.am         | 73 ++++++++++++++++++++++++-------------------
  src/egl/Makefile.am           |  8 +++--
- src/egl/opengles1/Makefile.am | 44 +++++++++++++++-----------
- src/egl/opengles2/Makefile.am | 33 ++++++++++---------
- 6 files changed, 135 insertions(+), 86 deletions(-)
+ src/egl/opengles1/Makefile.am | 10 ++++--
+ src/egl/opengles2/Makefile.am | 29 ++++++++---------
+ 6 files changed, 117 insertions(+), 70 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index 9445424..bc4c8d1 100644
+index 0525b09..28834cd 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -93,25 +93,44 @@ AC_EGREP_HEADER([glutInitContextProfile],
@@ -92,10 +94,11 @@ index 9445424..bc4c8d1 100644
  AM_CONDITIONAL(HAVE_GLESV1, test "x$glesv1_enabled" = "xyes")
  AM_CONDITIONAL(HAVE_GLESV2, test "x$glesv2_enabled" = "xyes")
 diff --git a/src/Makefile.am b/src/Makefile.am
-index 1647d64..754c47c 100644
+index 1647d64..8b89dee 100644
 --- a/src/Makefile.am
 +++ b/src/Makefile.am
-@@ -23,14 +23,18 @@
+@@ -22,15 +22,19 @@
+ # Authors:
  #    Eric Anholt <eric at anholt.net>
  
 +if HAVE_GLEW
@@ -116,7 +119,7 @@ index 1647d64..754c47c 100644
  	objviewer \
  	osdemos \
  	perf \
-@@ -40,8 +39,12 @@ SUBDIRS = \
+@@ -40,8 +44,12 @@ SUBDIRS = \
  	slang \
  	tests \
  	tools \
@@ -289,10 +292,10 @@ index d64a49e..4fe1ca8 100644
 +	openvg
 +endif
 diff --git a/src/egl/opengles1/Makefile.am b/src/egl/opengles1/Makefile.am
-index 7a9828d..3455e75 100644
+index fa397c2..21853e8 100644
 --- a/src/egl/opengles1/Makefile.am
 +++ b/src/egl/opengles1/Makefile.am
-@@ -36,28 +36,43 @@ AM_LDFLAGS = \
+@@ -36,9 +36,12 @@ AM_LDFLAGS = \
  	$(EGL_LIBS) \
  	-lm
  
@@ -301,42 +304,13 @@ index 7a9828d..3455e75 100644
  if HAVE_EGL
  if HAVE_GLESV1
 -noinst_PROGRAMS = \
--	bindtex \
--	clear \
-+noinst_PROGRAMS += \
- 	drawtex_screen \
-+	gears_screen \
-+	torus_screen \
-+	tri_screen
-+
-+drawtex_screen_SOURCES = drawtex.c
-+gears_screen_SOURCES = gears.c
-+torus_screen_SOURCES = torus.c
-+tri_screen_SOURCES = tri.c
-+
-+drawtex_screen_LDADD = ../eglut/libeglut_screen.la
-+gears_screen_LDADD = ../eglut/libeglut_screen.la
-+torus_screen_LDADD = ../eglut/libeglut_screen.la
-+tri_screen_LDADD = ../eglut/libeglut_screen.la
-+
 +if HAVE_X11
-+noinst_PROGRAMS += \
-+	clear
-+
 +bin_PROGRAMS = \
-+	bindtex \
+ 	bindtex \
+ 	clear \
  	drawtex_x11 \
- 	eglfbdev \
- 	es1_info \
--	gears_screen \
- 	gears_x11 \
- 	msaa \
- 	pbuffer\
- 	render_tex \
- 	texture_from_pixmap \
--	torus_screen \
+@@ -52,8 +55,6 @@ noinst_PROGRAMS = \
  	torus_x11 \
--	tri_screen \
  	tri_x11 \
  	two_win
 -endif
@@ -344,26 +318,7 @@ index 7a9828d..3455e75 100644
  
  bindtex_LDADD = $(X11_LIBS)
  es1_info_LDADD = $(X11_LIBS)
-@@ -71,22 +86,15 @@ two_win_LDADD = $(X11_LIBS)
- clear_LDADD = ../eglut/libeglut_x11.la $(EGL_LIBS) $(X11_LIBS)
- clear_LDFLAGS =
- 
--drawtex_screen_SOURCES = drawtex.c
--gears_screen_SOURCES = gears.c
--torus_screen_SOURCES = torus.c
--tri_screen_SOURCES = tri.c
--
- drawtex_x11_SOURCES = drawtex.c
- gears_x11_SOURCES = gears.c
- torus_x11_SOURCES = torus.c
- tri_x11_SOURCES = tri.c
- 
--drawtex_screen_LDADD = ../eglut/libeglut_screen.la
--gears_screen_LDADD = ../eglut/libeglut_screen.la
--torus_screen_LDADD = ../eglut/libeglut_screen.la
--tri_screen_LDADD = ../eglut/libeglut_screen.la
--
- drawtex_x11_LDADD = ../eglut/libeglut_x11.la
+@@ -76,3 +77,6 @@ drawtex_x11_LDADD = ../eglut/libeglut_x11.la
  gears_x11_LDADD = ../eglut/libeglut_x11.la
  torus_x11_LDADD = ../eglut/libeglut_x11.la
  tri_x11_LDADD = ../eglut/libeglut_x11.la
@@ -371,35 +326,35 @@ index 7a9828d..3455e75 100644
 +endif
 +endif
 diff --git a/src/egl/opengles2/Makefile.am b/src/egl/opengles2/Makefile.am
-index 41c1b80..74af460 100644
+index b80ba50..17f8d49 100644
 --- a/src/egl/opengles2/Makefile.am
 +++ b/src/egl/opengles2/Makefile.am
-@@ -36,26 +36,29 @@ AM_LDFLAGS = \
+@@ -33,27 +33,28 @@ AM_LDFLAGS = \
+ 	$(EGL_LIBS) \
+ 	-lm
+ 
++bin_PROGRAMS =
++
  if HAVE_EGL
  if HAVE_GLESV2
- bin_PROGRAMS = \
+-bin_PROGRAMS =
+-if HAVE_X11
+-bin_PROGRAMS += \
 -	es2_info \
--	es2gears_screen \
 -	es2gears_x11 \
 -	es2tri
-+	es2gears_screen
-+
-+es2gears_screen_SOURCES = es2gears.c
-+es2gears_screen_LDADD = ../eglut/libeglut_screen.la
-+
+-endif
  if HAVE_WAYLAND
  bin_PROGRAMS += es2gears_wayland
 -endif
 -endif
--endif
- 
--es2_info_LDADD = $(X11_LIBS)
--es2tri_LDADD = $(X11_LIBS)
++
 +es2gears_wayland_SOURCES = es2gears.c
 +es2gears_wayland_LDADD = ../eglut/libeglut_wayland.la
-+endif
+ endif
  
--es2gears_screen_SOURCES = es2gears.c
+-es2_info_LDADD = $(X11_LIBS)
+-es2tri_LDADD = $(X11_LIBS)
 +if HAVE_X11
 +bin_PROGRAMS += \
 +	es2tri \
@@ -409,8 +364,6 @@ index 41c1b80..74af460 100644
 +es2_info_LDADD = $(X11_LIBS)
  es2gears_x11_SOURCES = es2gears.c
 -
--es2gears_screen_LDADD = ../eglut/libeglut_screen.la
--
  es2gears_x11_LDADD = ../eglut/libeglut_x11.la
 +es2tri_LDADD = $(X11_LIBS)
 +endif
@@ -420,5 +373,5 @@ index 41c1b80..74af460 100644
 -es2gears_wayland_SOURCES = es2gears.c
 -es2gears_wayland_LDADD = ../eglut/libeglut_wayland.la
 -- 
-2.0.0
+2.1.4
 
diff --git a/meta/recipes-graphics/mesa/mesa-demos/0005-Fix-build-when-EGL_MESA_screen_surface-extension-isn.patch b/meta/recipes-graphics/mesa/mesa-demos/0005-Fix-build-when-EGL_MESA_screen_surface-extension-isn.patch
deleted file mode 100644
index aac2a37..0000000
--- a/meta/recipes-graphics/mesa/mesa-demos/0005-Fix-build-when-EGL_MESA_screen_surface-extension-isn.patch
+++ /dev/null
@@ -1,267 +0,0 @@
-From 453353a221de9c64479f4372565d2cd8591b36cc Mon Sep 17 00:00:00 2001
-From: Frank Binns <frank.binns at imgtec.com>
-Date: Fri, 29 Jun 2012 11:26:04 +0100
-Subject: [PATCH 5/9] Fix build when EGL_MESA_screen_surface extension isn't
- present
-
-The EGL demos won't build against EGL implementations that don't support
-the EGL_MESA_screen_surface extension. Fix this, in most cases, by
-wrapping relevant bits of code in #ifdef EGL_MESA_screen_surface.
-
-Signed-off-by: Frank Binns <frank.binns at imgtec.com>
-
-Applied and fixed up in Yocto by...
-
-Integrated-by: Tom Zanussi <tom.zanussi at linux.intel.com>
-
-Upstream-Status: Pending
----
- src/egl/eglut/eglut.c        |  9 +++++++--
- src/egl/eglut/eglut_screen.c | 14 ++++++++++++++
- src/egl/opengl/demo1.c       |  2 ++
- src/egl/opengl/demo2.c       |  7 ++++++-
- src/egl/opengl/demo3.c       |  7 ++++++-
- 5 files changed, 35 insertions(+), 4 deletions(-)
-
-diff --git a/src/egl/eglut/eglut.c b/src/egl/eglut/eglut.c
-index 2ee6f15..f6a2ad4 100644
---- a/src/egl/eglut/eglut.c
-+++ b/src/egl/eglut/eglut.c
-@@ -76,8 +76,9 @@ _eglutNow(void)
- static void
- _eglutDestroyWindow(struct eglut_window *win)
- {
--   if (_eglut->surface_type != EGL_PBUFFER_BIT &&
--       _eglut->surface_type != EGL_SCREEN_BIT_MESA)
-+
-+   if (_eglut->surface_type == EGL_WINDOW_BIT ||
-+       _eglut->surface_type == EGL_PIXMAP_BIT)
-       eglDestroySurface(_eglut->dpy, win->surface);
- 
-    _eglutNativeFiniWindow(win);
-@@ -175,7 +176,9 @@ _eglutCreateWindow(const char *title, int x, int y, int w, int h)
-             win->config, win->native.u.pixmap, NULL);
-       break;
-    case EGL_PBUFFER_BIT:
-+#ifdef EGL_MESA_screen_surface
-    case EGL_SCREEN_BIT_MESA:
-+#endif
-       win->surface = win->native.u.surface;
-       break;
-    default:
-@@ -289,8 +292,10 @@ eglutDestroyWindow(int win)
-    if (window->index != win)
-       return;
- 
-+#ifdef EGL_MESA_screen_surface
-    /* XXX it causes some bug in st/egl KMS backend */
-    if ( _eglut->surface_type != EGL_SCREEN_BIT_MESA)
-+#endif
-       eglMakeCurrent(_eglut->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
- 
-    _eglutDestroyWindow(_eglut->current);
-diff --git a/src/egl/eglut/eglut_screen.c b/src/egl/eglut/eglut_screen.c
-index 021a8f1..094a4e2 100644
---- a/src/egl/eglut/eglut_screen.c
-+++ b/src/egl/eglut/eglut_screen.c
-@@ -35,26 +35,33 @@
- 
- #define MAX_MODES 100
- 
-+#ifdef EGL_MESA_screen_surface
- static EGLScreenMESA kms_screen;
- static EGLModeMESA kms_mode;
- static EGLint kms_width, kms_height;
-+#endif
- 
- void
- _eglutNativeInitDisplay(void)
- {
-+#ifdef EGL_MESA_screen_surface
-    _eglut->native_dpy = EGL_DEFAULT_DISPLAY;
-    _eglut->surface_type = EGL_SCREEN_BIT_MESA;
-+#endif
- }
- 
- void
- _eglutNativeFiniDisplay(void)
- {
-+#ifdef EGL_MESA_screen_surface
-    kms_screen = 0;
-    kms_mode = 0;
-    kms_width = 0;
-    kms_height = 0;
-+#endif
- }
- 
-+#ifdef EGL_MESA_screen_surface
- static void
- init_kms(void)
- {
-@@ -94,19 +101,23 @@ init_kms(void)
-    kms_width = width;
-    kms_height = height;
- }
-+#endif
- 
- void
- _eglutNativeInitWindow(struct eglut_window *win, const char *title,
-                        int x, int y, int w, int h)
- {
-+#ifdef EGL_MESA_screen_surface
-    EGLint surf_attribs[16];
-    EGLint i;
-+#endif
-    const char *exts;
- 
-    exts = eglQueryString(_eglut->dpy, EGL_EXTENSIONS);
-    if (!exts || !strstr(exts, "EGL_MESA_screen_surface"))
-       _eglutFatal("EGL_MESA_screen_surface is not supported\n");
- 
-+#ifdef EGL_MESA_screen_surface
-    init_kms();
- 
-    i = 0;
-@@ -128,14 +139,17 @@ _eglutNativeInitWindow(struct eglut_window *win, const char *title,
- 
-    win->native.width = kms_width;
-    win->native.height = kms_height;
-+#endif
- }
- 
- void
- _eglutNativeFiniWindow(struct eglut_window *win)
- {
-+#ifdef EGL_MESA_screen_surface
-    eglShowScreenSurfaceMESA(_eglut->dpy,
-          kms_screen, EGL_NO_SURFACE, 0);
-    eglDestroySurface(_eglut->dpy, win->native.u.surface);
-+#endif
- }
- 
- void
-diff --git a/src/egl/opengl/demo1.c b/src/egl/opengl/demo1.c
-index d892734..3a3564c 100644
---- a/src/egl/opengl/demo1.c
-+++ b/src/egl/opengl/demo1.c
-@@ -18,6 +18,7 @@
- static void
- TestScreens(EGLDisplay dpy)
- {
-+#ifdef EGL_MESA_screen_surface
- #define MAX 8
-    EGLScreenMESA screens[MAX];
-    EGLint numScreens;
-@@ -28,6 +29,7 @@ TestScreens(EGLDisplay dpy)
-    for (i = 0; i < numScreens; i++) {
-       printf(" Screen %d handle: %d\n", i, (int) screens[i]);
-    }
-+#endif
- }
- 
- /**
-diff --git a/src/egl/opengl/demo2.c b/src/egl/opengl/demo2.c
-index 505b474..bfef59e 100644
---- a/src/egl/opengl/demo2.c
-+++ b/src/egl/opengl/demo2.c
-@@ -16,6 +16,7 @@
- 
- /*#define FRONTBUFFER*/
- 
-+#ifdef EGL_MESA_screen_surface
- static void _subset_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2,
-                           GLfloat r, GLfloat g, GLfloat b)
- {
-@@ -95,12 +96,13 @@ TestScreens(EGLDisplay dpy)
-       printf(" Screen %d handle: %d\n", i, (int) screens[i]);
-    }
- }
--
-+#endif
- 
- int
- main(int argc, char *argv[])
- {
-    int maj, min;
-+#ifdef EGL_MESA_screen_surface
-    EGLContext ctx;
-    EGLSurface pbuffer, screen_surf;
-    EGLConfig configs[10];
-@@ -115,6 +117,7 @@ main(int argc, char *argv[])
-    EGLModeMESA mode;
-    EGLScreenMESA screen;
-    EGLint count;
-+#endif
- 
-    EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
-    assert(d);
-@@ -132,6 +135,7 @@ main(int argc, char *argv[])
-       exit(1);
-    }
- 
-+#ifdef EGL_MESA_screen_surface
-    eglGetConfigs(d, configs, 10, &numConfigs);
-    printf("Got %d EGL configs:\n", numConfigs);
-    for (i = 0; i < numConfigs; i++) {
-@@ -211,6 +215,7 @@ main(int argc, char *argv[])
-    eglDestroySurface(d, pbuffer);
-    eglDestroyContext(d, ctx);
-    eglTerminate(d);
-+#endif
- 
-    return 0;
- }
-diff --git a/src/egl/opengl/demo3.c b/src/egl/opengl/demo3.c
-index f84ca23..31b5d8b 100644
---- a/src/egl/opengl/demo3.c
-+++ b/src/egl/opengl/demo3.c
-@@ -46,7 +46,7 @@ GLubyte OpenGL_bits[] = {
-    0x3e, 0x00, 0x00, 0xf8, 0x0c, 0x00, 
- };
- 
--
-+#ifdef EGL_MESA_screen_surface
- static void Init(void)
- {
- 
-@@ -551,11 +551,13 @@ write_ppm(const char *filename, const GLubyte *buffer, int width, int height)
-       fclose(f);
-    }
- }
-+#endif
- 
- int
- main(int argc, char *argv[])
- {
-    int maj, min;
-+#ifdef EGL_MESA_screen_surface
-    EGLContext ctx;
-    EGLSurface screen_surf;
-    EGLConfig configs[10];
-@@ -566,6 +568,7 @@ main(int argc, char *argv[])
-    const GLubyte *bitmap;
-    EGLint screenAttribs[32];
-    EGLint i;
-+#endif
- 
-    EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
-    assert(d);
-@@ -583,6 +586,7 @@ main(int argc, char *argv[])
-       exit(1);
-    }
- 
-+#ifdef EGL_MESA_screen_surface
-    eglGetConfigs(d, configs, 10, &numConfigs);
-    eglGetScreensMESA(d, &screen, 1, &count);
-    eglGetModesMESA(d, screen, &mode, 1, &count);
-@@ -642,6 +646,7 @@ main(int argc, char *argv[])
-    eglDestroySurface(d, screen_surf);
-    eglDestroyContext(d, ctx);
-    eglTerminate(d);
-+#endif
- 
-    return 0;
- }
--- 
-2.0.0
-
diff --git a/meta/recipes-graphics/mesa/mesa-demos/0006-Query-display-for-EGL_MESA_screen_surface-extension-.patch b/meta/recipes-graphics/mesa/mesa-demos/0006-Query-display-for-EGL_MESA_screen_surface-extension-.patch
deleted file mode 100644
index 12e0805..0000000
--- a/meta/recipes-graphics/mesa/mesa-demos/0006-Query-display-for-EGL_MESA_screen_surface-extension-.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 6a19dba1d275579c73e7763b0554410ff4e1e650 Mon Sep 17 00:00:00 2001
-From: Frank Binns <frank.binns at imgtec.com>
-Date: Fri, 29 Jun 2012 12:00:26 +0100
-Subject: [PATCH 6/9] Query display for EGL_MESA_screen_surface extension
- before using it
-
-This code makes heavy use of the EGL_MESA_screen_surface extension so
-check the display to determine if it's supported by the underlying EGL
-implementation. If it doesn't then bail.
-
-Signed-off-by: Frank Binns <frank.binns at imgtec.com>
-
-Applied and fixed up in Yocto by...
-
-Integrated-by: Tom Zanussi <tom.zanussi at linux.intel.com>
-
-Upstream-Status: Pending
----
- src/egl/opengl/demo1.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/src/egl/opengl/demo1.c b/src/egl/opengl/demo1.c
-index 3a3564c..06e2138 100644
---- a/src/egl/opengl/demo1.c
-+++ b/src/egl/opengl/demo1.c
-@@ -110,6 +110,12 @@ main(int argc, char *argv[])
-    printf("EGL version = %d.%d\n", maj, min);
-    printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
- 
-+   if (!strstr(eglQueryString(d, EGL_EXTENSIONS),
-+               "EGL_MESA_screen_surface")) {
-+      printf("EGL_MESA_screen_surface is not supported\n");
-+      exit(1);
-+   }
-+
-    eglGetConfigs(d, NULL, 0, &numConfigs);
-    configs = malloc(sizeof(*configs) *numConfigs);
-    eglGetConfigs(d, configs, numConfigs, &numConfigs);
--- 
-2.0.0
-
diff --git a/meta/recipes-graphics/mesa/mesa-demos/0007-Install-few-more-test-programs.patch b/meta/recipes-graphics/mesa/mesa-demos/0007-Install-few-more-test-programs.patch
index 89d2fac..6b676cd 100644
--- a/meta/recipes-graphics/mesa/mesa-demos/0007-Install-few-more-test-programs.patch
+++ b/meta/recipes-graphics/mesa/mesa-demos/0007-Install-few-more-test-programs.patch
@@ -1,11 +1,13 @@
-From d930b2da57f7c9efb80c8cef8f8adad15bbbc0d3 Mon Sep 17 00:00:00 2001
+From c59e286fa4e818ca015dd40e4725636309970ea8 Mon Sep 17 00:00:00 2001
 From: Martin Jansa <Martin.Jansa at gmail.com>
 Date: Thu, 10 Jul 2014 14:30:52 +0200
-Subject: [PATCH 7/9] Install few more test programs
+Subject: [PATCH] Install few more test programs
 
 Upstream-Status: Pending
 
 Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
+
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen at intel.com>
 ---
  src/egl/opengl/Makefile.am    |  2 +-
  src/egl/opengles1/Makefile.am | 10 ++++------
@@ -13,7 +15,7 @@ Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
  3 files changed, 6 insertions(+), 8 deletions(-)
 
 diff --git a/src/egl/opengl/Makefile.am b/src/egl/opengl/Makefile.am
-index 0c7228f..87b2f1a 100644
+index fe7faa9..3e48141 100644
 --- a/src/egl/opengl/Makefile.am
 +++ b/src/egl/opengl/Makefile.am
 @@ -50,7 +50,7 @@ endif
@@ -22,42 +24,11 @@ index 0c7228f..87b2f1a 100644
  if HAVE_EGL
 -noinst_PROGRAMS = \
 +bin_PROGRAMS = \
- 	demo1 \
- 	demo2 \
- 	demo3 \
-diff --git a/src/egl/opengles1/Makefile.am b/src/egl/opengles1/Makefile.am
-index 3455e75..516e516 100644
---- a/src/egl/opengles1/Makefile.am
-+++ b/src/egl/opengles1/Makefile.am
-@@ -36,11 +36,11 @@ AM_LDFLAGS = \
- 	$(EGL_LIBS) \
- 	-lm
- 
--noinst_PROGRAMS =
-+bin_PROGRAMS =
- 
- if HAVE_EGL
- if HAVE_GLESV1
--noinst_PROGRAMS += \
-+bin_PROGRAMS += \
- 	drawtex_screen \
- 	gears_screen \
- 	torus_screen \
-@@ -57,10 +57,8 @@ torus_screen_LDADD = ../eglut/libeglut_screen.la
- tri_screen_LDADD = ../eglut/libeglut_screen.la
- 
- if HAVE_X11
--noinst_PROGRAMS += \
--	clear
--
--bin_PROGRAMS = \
-+bin_PROGRAMS += \
-+	clear \
- 	bindtex \
- 	drawtex_x11 \
- 	eglfbdev \
+ 	eglinfo \
+ 	peglgears \
+ 	$(EGL_DRM_DEMOS) \
 diff --git a/src/egl/openvg/Makefile.am b/src/egl/openvg/Makefile.am
-index 7318a43..b545225 100644
+index b0f1212..5fd1cf8 100644
 --- a/src/egl/openvg/Makefile.am
 +++ b/src/egl/openvg/Makefile.am
 @@ -49,7 +49,7 @@ endif
@@ -66,9 +37,9 @@ index 7318a43..b545225 100644
  if HAVE_VG
 -noinst_PROGRAMS = \
 +bin_PROGRAMS = \
- 	lion_screen \
- 	sp_screen \
  	$(EGL_X11_DEMOS)
+ endif
+ endif
 -- 
-2.0.0
+2.1.4
 
diff --git a/meta/recipes-graphics/mesa/mesa-demos/0010-sharedtex_mt-fix-rendering-thread-hang.patch b/meta/recipes-graphics/mesa/mesa-demos/0010-sharedtex_mt-fix-rendering-thread-hang.patch
deleted file mode 100644
index 04e1b44..0000000
--- a/meta/recipes-graphics/mesa/mesa-demos/0010-sharedtex_mt-fix-rendering-thread-hang.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 525fa9ded72d22b53c5eb366f61e2ac1d407a2db Mon Sep 17 00:00:00 2001
-From: Awais Belal <awais_belal at mentor.com>
-Date: Thu, 8 Oct 2015 13:49:31 +0500
-Subject: [PATCH] sharedtex_mt: fix rendering thread hang
-
-XNextEvent is a blocking call which locks up the display mutex
-this causes the rendering threads to hang when they try call
-glXSwapBuffers() as that tries to take the same mutex in
-underlying calls through XCopyArea().
-So we only go to XNextEvent when it has at least one event
-and we wouldn't lock indefinitely.
-
-Signed-off-by: Awais Belal <awais_belal at mentor.com>
-Upstream-Status: Backport (2b304e765695d385fd3bf414e6e444020bedb0a8)
-
----
- src/xdemos/sharedtex_mt.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/src/xdemos/sharedtex_mt.c b/src/xdemos/sharedtex_mt.c
-index a90903a..1d503c4 100644
---- a/src/xdemos/sharedtex_mt.c
-+++ b/src/xdemos/sharedtex_mt.c
-@@ -420,9 +420,14 @@ Resize(struct window *h, unsigned int width, unsigned int height)
- static void
- EventLoop(void)
- {
-+   int i;
-+   XEvent event;
-    while (1) {
--      int i;
--      XEvent event;
-+      /* Do we have an event? */
-+      if (XPending(gDpy) == 0) {
-+         usleep(10000);
-+         continue;
-+      }
-       XNextEvent(gDpy, &event);
-       for (i = 0; i < NumWindows; i++) {
- 	 struct window *h = &Windows[i];
--- 
-1.9.1
-
diff --git a/meta/recipes-graphics/mesa/mesa-demos/0011-drop-demos-dependant-on-obsolete-MESA_screen_surface.patch b/meta/recipes-graphics/mesa/mesa-demos/0011-drop-demos-dependant-on-obsolete-MESA_screen_surface.patch
deleted file mode 100644
index a2621ce..0000000
--- a/meta/recipes-graphics/mesa/mesa-demos/0011-drop-demos-dependant-on-obsolete-MESA_screen_surface.patch
+++ /dev/null
@@ -1,1592 +0,0 @@
-commit 74443c6ee79f3251f643ea05e94df58183e37d0d
-Author: Matt Turner <mattst88 at gmail.com>
-Date:   Fri Aug 28 15:57:38 2015 -0700
-
-    egl: Remove demos using EGL_MESA_screen_surface.
-    
-    The remnants of the extension were removed from Mesa in commit 7a58262e.
-    
-    Reviewed-by: Andreas Boll <andreas.boll.dev at gmail.com>
-    Tested-by: Andreas Boll <andreas.boll.dev at gmail.com>
-    Reviewed-by: Marek Olšák <marek.olsak at amd.com>
-
-Upstream-Status: Backport
-
-diff --git a/src/egl/eglut/Makefile.am b/src/egl/eglut/Makefile.am
-index 2d2f2af..b765069 100644
---- a/src/egl/eglut/Makefile.am
-+++ b/src/egl/eglut/Makefile.am
-@@ -33,17 +33,12 @@ if HAVE_WAYLAND
- eglut_wayland = libeglut_wayland.la
- endif
- 
--noinst_LTLIBRARIES = libeglut_screen.la $(eglut_x11) $(eglut_wayland)
-+noinst_LTLIBRARIES = $(eglut_x11) $(eglut_wayland)
- endif
- 
--libeglut_screen_la_SOURCES = \
--	eglut.c \
--	eglut.h \
--	eglutint.h \
--	eglut_screen.c
--
- libeglut_x11_la_SOURCES = \
- 	eglut.c \
-+	eglut.h \
- 	eglutint.h \
- 	eglut_x11.c
- libeglut_x11_la_CFLAGS = $(X11_CFLAGS) $(EGL_CFLAGS)
-@@ -52,6 +47,7 @@ libeglut_x11_la_LIBADD = $(X11_LIBS) $(EGL_LIBS)
- 
- libeglut_wayland_la_SOURCES = \
- 	eglut.c \
-+	eglut.h \
- 	eglutint.h \
- 	eglut_wayland.c
- 
-diff --git a/src/egl/eglut/eglut.c b/src/egl/eglut/eglut.c
-index f6a2ad4..58b354a 100644
---- a/src/egl/eglut/eglut.c
-+++ b/src/egl/eglut/eglut.c
-@@ -176,9 +176,6 @@ _eglutCreateWindow(const char *title, int x, int y, int w, int h)
-             win->config, win->native.u.pixmap, NULL);
-       break;
-    case EGL_PBUFFER_BIT:
--#ifdef EGL_MESA_screen_surface
--   case EGL_SCREEN_BIT_MESA:
--#endif
-       win->surface = win->native.u.surface;
-       break;
-    default:
-@@ -292,11 +289,7 @@ eglutDestroyWindow(int win)
-    if (window->index != win)
-       return;
- 
--#ifdef EGL_MESA_screen_surface
--   /* XXX it causes some bug in st/egl KMS backend */
--   if ( _eglut->surface_type != EGL_SCREEN_BIT_MESA)
--#endif
--      eglMakeCurrent(_eglut->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
-+   eglMakeCurrent(_eglut->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
- 
-    _eglutDestroyWindow(_eglut->current);
- }
-diff --git a/src/egl/eglut/eglut_screen.c b/src/egl/eglut/eglut_screen.c
-deleted file mode 100644
-index 094a4e2..0000000
---- a/src/egl/eglut/eglut_screen.c
-+++ /dev/null
-@@ -1,194 +0,0 @@
--/*
-- * Copyright (C) 2010 LunarG Inc.
-- *
-- * Permission is hereby granted, free of charge, to any person obtaining a
-- * copy of this software and associated documentation files (the "Software"),
-- * to deal in the Software without restriction, including without limitation
-- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
-- * and/or sell copies of the Software, and to permit persons to whom the
-- * Software is furnished to do so, subject to the following conditions:
-- *
-- * The above copyright notice and this permission notice shall be included
-- * in all copies or substantial portions of the Software.
-- *
-- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-- * DEALINGS IN THE SOFTWARE.
-- *
-- * Authors:
-- *    Chia-I Wu <olv at lunarg.com>
-- */
--
--#include <stdio.h>
--#include <string.h>
--#include <sys/time.h>
--
--#define EGL_EGLEXT_PROTOTYPES
--#include "EGL/egl.h"
--#include "EGL/eglext.h"
--
--#include "eglutint.h"
--
--#define MAX_MODES 100
--
--#ifdef EGL_MESA_screen_surface
--static EGLScreenMESA kms_screen;
--static EGLModeMESA kms_mode;
--static EGLint kms_width, kms_height;
--#endif
--
--void
--_eglutNativeInitDisplay(void)
--{
--#ifdef EGL_MESA_screen_surface
--   _eglut->native_dpy = EGL_DEFAULT_DISPLAY;
--   _eglut->surface_type = EGL_SCREEN_BIT_MESA;
--#endif
--}
--
--void
--_eglutNativeFiniDisplay(void)
--{
--#ifdef EGL_MESA_screen_surface
--   kms_screen = 0;
--   kms_mode = 0;
--   kms_width = 0;
--   kms_height = 0;
--#endif
--}
--
--#ifdef EGL_MESA_screen_surface
--static void
--init_kms(void)
--{
--   EGLModeMESA modes[MAX_MODES];
--   EGLint num_screens, num_modes;
--   EGLint width, height, best_mode;
--   EGLint i;
--
--   if (!eglGetScreensMESA(_eglut->dpy, &kms_screen, 1, &num_screens) ||
--         !num_screens)
--      _eglutFatal("eglGetScreensMESA failed\n");
--
--   if (!eglGetModesMESA(_eglut->dpy, kms_screen,
--            modes, MAX_MODES, &num_modes) || !num_modes)
--      _eglutFatal("eglGetModesMESA failed!\n");
--
--   printf("Found %d modes:\n", num_modes);
--
--   best_mode = 0;
--   width = 0;
--   height = 0;
--   for (i = 0; i < num_modes; i++) {
--      EGLint w, h;
--      eglGetModeAttribMESA(_eglut->dpy, modes[i], EGL_WIDTH, &w);
--      eglGetModeAttribMESA(_eglut->dpy, modes[i], EGL_HEIGHT, &h);
--      printf("%3d: %d x %d\n", i, w, h);
--      if (w > width && h > height) {
--         width = w;
--         height = h;
--         best_mode = i;
--      }
--   }
--
--   printf("Will use screen size: %d x %d\n", width, height);
--
--   kms_mode = modes[best_mode];
--   kms_width = width;
--   kms_height = height;
--}
--#endif
--
--void
--_eglutNativeInitWindow(struct eglut_window *win, const char *title,
--                       int x, int y, int w, int h)
--{
--#ifdef EGL_MESA_screen_surface
--   EGLint surf_attribs[16];
--   EGLint i;
--#endif
--   const char *exts;
--
--   exts = eglQueryString(_eglut->dpy, EGL_EXTENSIONS);
--   if (!exts || !strstr(exts, "EGL_MESA_screen_surface"))
--      _eglutFatal("EGL_MESA_screen_surface is not supported\n");
--
--#ifdef EGL_MESA_screen_surface
--   init_kms();
--
--   i = 0;
--   surf_attribs[i++] = EGL_WIDTH;
--   surf_attribs[i++] = kms_width;
--   surf_attribs[i++] = EGL_HEIGHT;
--   surf_attribs[i++] = kms_height;
--   surf_attribs[i++] = EGL_NONE;
--
--   /* create surface */
--   win->native.u.surface = eglCreateScreenSurfaceMESA(_eglut->dpy,
--         win->config, surf_attribs);
--   if (win->native.u.surface == EGL_NO_SURFACE)
--      _eglutFatal("eglCreateScreenSurfaceMESA failed\n");
--
--   if (!eglShowScreenSurfaceMESA(_eglut->dpy, kms_screen,
--            win->native.u.surface, kms_mode))
--      _eglutFatal("eglShowScreenSurfaceMESA failed\n");
--
--   win->native.width = kms_width;
--   win->native.height = kms_height;
--#endif
--}
--
--void
--_eglutNativeFiniWindow(struct eglut_window *win)
--{
--#ifdef EGL_MESA_screen_surface
--   eglShowScreenSurfaceMESA(_eglut->dpy,
--         kms_screen, EGL_NO_SURFACE, 0);
--   eglDestroySurface(_eglut->dpy, win->native.u.surface);
--#endif
--}
--
--void
--_eglutNativeEventLoop(void)
--{
--   int start = _eglutNow();
--   int frames = 0;
--
--   _eglut->redisplay = 1;
--
--   while (1) {
--      struct eglut_window *win = _eglut->current;
--      int now = _eglutNow();
--
--      if (now - start > 5000) {
--         double elapsed = (double) (now - start) / 1000.0;
--
--         printf("%d frames in %3.1f seconds = %6.3f FPS\n",
--               frames, elapsed, frames / elapsed);
--         fflush(stdout);
--
--         start = now;
--         frames = 0;
--
--         /* send escape */
--         if (win->keyboard_cb)
--            win->keyboard_cb(27);
--      }
--
--      if (_eglut->idle_cb)
--         _eglut->idle_cb();
--
--      if (_eglut->redisplay) {
--         _eglut->redisplay = 0;
--
--         if (win->display_cb)
--            win->display_cb();
--         eglSwapBuffers(_eglut->dpy, win->surface);
--         frames++;
--      }
--   }
--}
-diff --git a/src/egl/opengl/Makefile.am b/src/egl/opengl/Makefile.am
-index 87b2f1a..3e48141 100644
---- a/src/egl/opengl/Makefile.am
-+++ b/src/egl/opengl/Makefile.am
-@@ -51,20 +51,12 @@ endif
- 
- if HAVE_EGL
- bin_PROGRAMS = \
--	demo1 \
--	demo2 \
--	demo3 \
- 	eglinfo \
--	eglgears_screen \
--	egltri_screen \
- 	peglgears \
- 	$(EGL_DRM_DEMOS) \
- 	$(EGL_X11_DEMOS)
- endif
- 
--egltri_screen_SOURCES = egltri.c
--eglgears_screen_SOURCES = eglgears.c
--
- egltri_x11_SOURCES = egltri.c
- eglgears_x11_SOURCES = eglgears.c
- 
-@@ -73,9 +65,6 @@ egltri_x11_LDFLAGS = $(AM_LDFLAGS) $(X11_LIBS)
- xeglgears_LDFLAGS = $(AM_LDFLAGS) $(X11_LIBS)
- xeglthreads_LDFLAGS = $(AM_LDFLAGS) $(X11_LIBS) -pthread
- 
--eglgears_screen_LDADD = ../eglut/libeglut_screen.la
--egltri_screen_LDADD = ../eglut/libeglut_screen.la
--
- eglgears_x11_LDADD = ../eglut/libeglut_x11.la
- egltri_x11_LDADD = ../eglut/libeglut_x11.la
- 
-diff --git a/src/egl/opengl/demo1.c b/src/egl/opengl/demo1.c
-deleted file mode 100644
-index 06e2138..0000000
---- a/src/egl/opengl/demo1.c
-+++ /dev/null
-@@ -1,155 +0,0 @@
--/*
-- * Exercise EGL API functions
-- */
--
--#define EGL_EGLEXT_PROTOTYPES
--
--#include <EGL/egl.h>
--#include <EGL/eglext.h>
--#include <assert.h>
--#include <stdio.h>
--#include <stdlib.h>
--#include <string.h>
--
--
--/**
-- * Test EGL_MESA_screen_surface functions
-- */
--static void
--TestScreens(EGLDisplay dpy)
--{
--#ifdef EGL_MESA_screen_surface
--#define MAX 8
--   EGLScreenMESA screens[MAX];
--   EGLint numScreens;
--   EGLint i;
--
--   eglGetScreensMESA(dpy, screens, MAX, &numScreens);
--   printf("Found %d screens\n", numScreens);
--   for (i = 0; i < numScreens; i++) {
--      printf(" Screen %d handle: %d\n", i, (int) screens[i]);
--   }
--#endif
--}
--
--/**
-- * Print table of all available configurations.
-- */
--static void
--PrintConfigs(EGLDisplay d, EGLConfig *configs, EGLint numConfigs)
--{
--   EGLint i;
--
--   printf("Configurations:\n");
--   printf("     bf lv d st colorbuffer dp st   supported \n");
--   printf("  id sz  l b ro  r  g  b  a th cl   surfaces  \n");
--   printf("----------------------------------------------\n");
--   for (i = 0; i < numConfigs; i++) {
--      EGLint id, size, level;
--      EGLint red, green, blue, alpha;
--      EGLint depth, stencil;
--      EGLint surfaces;
--      EGLint doubleBuf = 1, stereo = 0;
--      char surfString[100] = "";
--
--      eglGetConfigAttrib(d, configs[i], EGL_CONFIG_ID, &id);
--      eglGetConfigAttrib(d, configs[i], EGL_BUFFER_SIZE, &size);
--      eglGetConfigAttrib(d, configs[i], EGL_LEVEL, &level);
--
--      eglGetConfigAttrib(d, configs[i], EGL_RED_SIZE, &red);
--      eglGetConfigAttrib(d, configs[i], EGL_GREEN_SIZE, &green);
--      eglGetConfigAttrib(d, configs[i], EGL_BLUE_SIZE, &blue);
--      eglGetConfigAttrib(d, configs[i], EGL_ALPHA_SIZE, &alpha);
--      eglGetConfigAttrib(d, configs[i], EGL_DEPTH_SIZE, &depth);
--      eglGetConfigAttrib(d, configs[i], EGL_STENCIL_SIZE, &stencil);
--      eglGetConfigAttrib(d, configs[i], EGL_SURFACE_TYPE, &surfaces);
--
--      if (surfaces & EGL_WINDOW_BIT)
--         strcat(surfString, "win,");
--      if (surfaces & EGL_PBUFFER_BIT)
--         strcat(surfString, "pb,");
--      if (surfaces & EGL_PIXMAP_BIT)
--         strcat(surfString, "pix,");
--      if (strlen(surfString) > 0)
--         surfString[strlen(surfString) - 1] = 0;
--
--      printf("0x%02x %2d %2d %c  %c %2d %2d %2d %2d %2d %2d   %-12s\n",
--             id, size, level,
--             doubleBuf ? 'y' : '.',
--             stereo ? 'y' : '.',
--             red, green, blue, alpha,
--             depth, stencil, surfString);
--   }
--}
--
--
--
--int
--main(int argc, char *argv[])
--{
--   int maj, min;
--   EGLContext ctx;
--   EGLSurface pbuffer;
--   EGLConfig *configs;
--   EGLint numConfigs;
--   EGLBoolean b;
--   const EGLint pbufAttribs[] = {
--      EGL_WIDTH, 500,
--      EGL_HEIGHT, 500,
--      EGL_NONE
--   };
--
--   EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
--   assert(d);
--
--   if (!eglInitialize(d, &maj, &min)) {
--      printf("demo: eglInitialize failed\n");
--      exit(1);
--   }
--
--   printf("EGL version = %d.%d\n", maj, min);
--   printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
--
--   if (!strstr(eglQueryString(d, EGL_EXTENSIONS),
--               "EGL_MESA_screen_surface")) {
--      printf("EGL_MESA_screen_surface is not supported\n");
--      exit(1);
--   }
--
--   eglGetConfigs(d, NULL, 0, &numConfigs);
--   configs = malloc(sizeof(*configs) *numConfigs);
--   eglGetConfigs(d, configs, numConfigs, &numConfigs);
--
--   PrintConfigs(d, configs, numConfigs);
--
--   eglBindAPI(EGL_OPENGL_API);
--   ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
--   if (ctx == EGL_NO_CONTEXT) {
--      printf("failed to create context\n");
--      return 0;
--   }
--
--   pbuffer = eglCreatePbufferSurface(d, configs[0], pbufAttribs);
--   if (pbuffer == EGL_NO_SURFACE) {
--      printf("failed to create pbuffer\n");
--      return 0;
--   }
--
--   free(configs);
--
--   b = eglMakeCurrent(d, pbuffer, pbuffer, ctx);
--   if (!b) {
--      printf("make current failed\n");
--      return 0;
--   }
--
--   b = eglMakeCurrent(d, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
--
--   TestScreens(d);
--
--   eglDestroySurface(d, pbuffer);
--   eglDestroyContext(d, ctx);
--   eglTerminate(d);
--
--   return 0;
--}
-diff --git a/src/egl/opengl/demo2.c b/src/egl/opengl/demo2.c
-deleted file mode 100644
-index bfef59e..0000000
---- a/src/egl/opengl/demo2.c
-+++ /dev/null
-@@ -1,221 +0,0 @@
--/*
-- * Exercise EGL API functions
-- */
--
--#define EGL_EGLEXT_PROTOTYPES
--
--#include <assert.h>
--#include <stdio.h>
--#include <stdlib.h>
--#include <string.h>
--#include <unistd.h>
--
--#include <EGL/egl.h>
--#include <EGL/eglext.h>
--#include "gl_wrap.h"
--
--/*#define FRONTBUFFER*/
--
--#ifdef EGL_MESA_screen_surface
--static void _subset_Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2,
--                          GLfloat r, GLfloat g, GLfloat b)
--{
--   GLfloat v[4][2], c[4][4];
--   int i;
--
--   v[0][0] = x1;   v[0][1] = y1;
--   v[1][0] = x2;   v[1][1] = y1;
--   v[2][0] = x2;   v[2][1] = y2;
--   v[3][0] = x1;   v[3][1] = y2;
--
--   for (i = 0; i < 4; i++) {
--      c[i][0] = r;
--      c[i][1] = g;
--      c[i][2] = b;
--      c[i][3] = 1.0;
--   }
--
--   glVertexPointer(2, GL_FLOAT, 0, v);
--   glColorPointer(4, GL_FLOAT, 0, c);
--   glEnableClientState(GL_VERTEX_ARRAY);
--   glEnableClientState(GL_COLOR_ARRAY);
--
--   glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
--
--   glDisableClientState(GL_VERTEX_ARRAY);
--   glDisableClientState(GL_COLOR_ARRAY);
--}
--
--
--static void redraw(EGLDisplay dpy, EGLSurface surf, int rot)
--{
--   GLfloat r, g, b;
--
--   printf("Redraw event\n");
--
--   glClearColor( rand()/(float)RAND_MAX, 
--		 rand()/(float)RAND_MAX, 
--		 rand()/(float)RAND_MAX,
--		 1);
--
--   glClear( GL_COLOR_BUFFER_BIT ); 
--
--   r = rand()/(float)RAND_MAX;
--   g = rand()/(float)RAND_MAX;
--   b = rand()/(float)RAND_MAX;
--
--   glPushMatrix();
--   glRotatef(rot, 0, 0, 1);
--   glScalef(.5, .5, .5);
--   _subset_Rectf( -1, -1, 1, 1, r, g, b );
--   glPopMatrix();
--
--#ifdef FRONTBUFFER
--   glFlush();
--#else
--   eglSwapBuffers( dpy, surf ); 
--#endif
--   glFinish();
--}
--
--
--/**
-- * Test EGL_MESA_screen_surface functions
-- */
--static void
--TestScreens(EGLDisplay dpy)
--{
--#define MAX 8
--   EGLScreenMESA screens[MAX];
--   EGLint numScreens;
--   EGLint i;
--
--   eglGetScreensMESA(dpy, screens, MAX, &numScreens);
--   printf("Found %d screens\n", numScreens);
--   for (i = 0; i < numScreens; i++) {
--      printf(" Screen %d handle: %d\n", i, (int) screens[i]);
--   }
--}
--#endif
--
--int
--main(int argc, char *argv[])
--{
--   int maj, min;
--#ifdef EGL_MESA_screen_surface
--   EGLContext ctx;
--   EGLSurface pbuffer, screen_surf;
--   EGLConfig configs[10];
--   EGLint numConfigs, i;
--   EGLBoolean b;
--   const EGLint pbufAttribs[] = {
--      EGL_WIDTH, 500,
--      EGL_HEIGHT, 500,
--      EGL_NONE
--   };
--   EGLint screenAttribs[32];
--   EGLModeMESA mode;
--   EGLScreenMESA screen;
--   EGLint count;
--#endif
--
--   EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
--   assert(d);
--
--   if (!eglInitialize(d, &maj, &min)) {
--      printf("demo: eglInitialize failed\n");
--      exit(1);
--   }
--
--   printf("EGL version = %d.%d\n", maj, min);
--   printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
--   if (!strstr(eglQueryString(d, EGL_EXTENSIONS),
--               "EGL_MESA_screen_surface")) {
--      printf("EGL_MESA_screen_surface is not supported\n");
--      exit(1);
--   }
--
--#ifdef EGL_MESA_screen_surface
--   eglGetConfigs(d, configs, 10, &numConfigs);
--   printf("Got %d EGL configs:\n", numConfigs);
--   for (i = 0; i < numConfigs; i++) {
--      EGLint id, red, depth;
--      eglGetConfigAttrib(d, configs[i], EGL_CONFIG_ID, &id);
--      eglGetConfigAttrib(d, configs[i], EGL_RED_SIZE, &red);
--      eglGetConfigAttrib(d, configs[i], EGL_DEPTH_SIZE, &depth);
--      printf("%2d:  Red Size = %d  Depth Size = %d\n", id, red, depth);
--   }
--   
--   eglGetScreensMESA(d, &screen, 1, &count);
--   eglGetModesMESA(d, screen, &mode, 1, &count);
--
--   eglBindAPI(EGL_OPENGL_API);
--   ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
--   if (ctx == EGL_NO_CONTEXT) {
--      printf("failed to create context\n");
--      return 0;
--   }
--
--   pbuffer = eglCreatePbufferSurface(d, configs[0], pbufAttribs);
--   if (pbuffer == EGL_NO_SURFACE) {
--      printf("failed to create pbuffer\n");
--      return 0;
--   }
--
--   b = eglMakeCurrent(d, pbuffer, pbuffer, ctx);
--   if (!b) {
--      printf("make current failed\n");
--      return 0;
--   }
--
--   b = eglMakeCurrent(d, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
--
--   i = 0;
--   screenAttribs[i++] = EGL_WIDTH;
--   eglGetModeAttribMESA(d, mode, EGL_WIDTH, &screenAttribs[i++]);
--   screenAttribs[i++] = EGL_HEIGHT;
--   eglGetModeAttribMESA(d, mode, EGL_HEIGHT, &screenAttribs[i++]);
--   screenAttribs[i] = EGL_NONE;
--
--   screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs);
--   if (screen_surf == EGL_NO_SURFACE) {
--      printf("failed to create screen surface\n");
--      return 0;
--   }
--   
--   eglShowScreenSurfaceMESA(d, screen, screen_surf, mode);
--
--   b = eglMakeCurrent(d, screen_surf, screen_surf, ctx);
--   if (!b) {
--      printf("make current failed\n");
--      return 0;
--   }
--
--   glViewport(0, 0, 1024, 768);
--
--   glClearColor( 0, 
--		 1.0, 
--		 0,
--		 1);
--
--   glClear( GL_COLOR_BUFFER_BIT ); 
--   
--      
--   TestScreens(d);
--
--   glShadeModel( GL_FLAT );
--   
--   for (i = 0; i < 6; i++) {
--      redraw(d, screen_surf, i*10 );
--
--      printf("sleep(1)\n");   
--      sleep(1);  
--   }
--
--   eglDestroySurface(d, pbuffer);
--   eglDestroyContext(d, ctx);
--   eglTerminate(d);
--#endif
--
--   return 0;
--}
-diff --git a/src/egl/opengl/demo3.c b/src/egl/opengl/demo3.c
-deleted file mode 100644
-index 31b5d8b..0000000
---- a/src/egl/opengl/demo3.c
-+++ /dev/null
-@@ -1,652 +0,0 @@
--/*
-- * Exercise EGL API functions
-- */
--
--#define EGL_EGLEXT_PROTOTYPES
--
--#include <EGL/egl.h>
--#include <EGL/eglext.h>
--#include "gl_wrap.h"
--#include <assert.h>
--#include <stdio.h>
--#include <stdlib.h>
--#include <string.h>
--#include <unistd.h>
--
--
--
--#define PIXEL_CENTER(x) ((long)(x) + 0.5)
--
--#define GAP 10
--#define ROWS 3
--#define COLS 4
--
--#define OPENGL_WIDTH 48
--#define OPENGL_HEIGHT 13
--
--
--GLenum rgb, doubleBuffer, windType;
--GLint windW, windH;
--
--GLenum mode1, mode2;
--GLint boxW, boxH;
--GLubyte OpenGL_bits[] = {
--   0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 
--   0x7f, 0xfb, 0xff, 0xff, 0xff, 0x01,
--   0x7f, 0xfb, 0xff, 0xff, 0xff, 0x01, 
--   0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
--   0x3e, 0x8f, 0xb7, 0xf9, 0xfc, 0x01, 
--   0x63, 0xdb, 0xb0, 0x8d, 0x0d, 0x00,
--   0x63, 0xdb, 0xb7, 0x8d, 0x0d, 0x00, 
--   0x63, 0xdb, 0xb6, 0x8d, 0x0d, 0x00,
--   0x63, 0x8f, 0xf3, 0xcc, 0x0d, 0x00, 
--   0x63, 0x00, 0x00, 0x0c, 0x4c, 0x0a,
--   0x63, 0x00, 0x00, 0x0c, 0x4c, 0x0e, 
--   0x63, 0x00, 0x00, 0x8c, 0xed, 0x0e,
--   0x3e, 0x00, 0x00, 0xf8, 0x0c, 0x00, 
--};
--
--#ifdef EGL_MESA_screen_surface
--static void Init(void)
--{
--
--    mode1 = GL_TRUE;
--    mode2 = GL_TRUE;
--}
--
--static void Reshape(int width, int height)
--{
--
--    windW = (GLint)width;
--    windH = (GLint)height;
--}
--
--#if 0
--static void RotateColorMask(void)
--{
--    static GLint rotation = 0;
--    
--    rotation = (rotation + 1) & 0x3;
--    switch (rotation) {
--      case 0:
--	glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
--	glIndexMask( 0xff );
--	break;
--      case 1:
--	glColorMask(GL_FALSE, GL_TRUE, GL_TRUE, GL_TRUE);
--	glIndexMask(0xFE);
--	break;
--      case 2:
--	glColorMask(GL_TRUE, GL_FALSE, GL_TRUE, GL_TRUE);
--	glIndexMask(0xFD);
--	break;
--      case 3:
--	glColorMask(GL_TRUE, GL_TRUE, GL_FALSE, GL_TRUE);
--	glIndexMask(0xFB);
--	break;
--    }
--}
--#endif
--
--static void Viewport(GLint row, GLint column)
--{
--    GLint x, y;
--
--    boxW = (windW - (COLS + 1) * GAP) / COLS;
--    boxH = (windH - (ROWS + 1) * GAP) / ROWS;
--
--    x = GAP + column * (boxW + GAP);
--    y = GAP + row * (boxH + GAP);
--
--    glViewport(x, y, boxW, boxH);
--
--    glMatrixMode(GL_PROJECTION);
--    glLoadIdentity();
--    glOrtho(-boxW/2, boxW/2, -boxH/2, boxH/2, 0.0, 1.0);
--    glMatrixMode(GL_MODELVIEW);
--
--    glEnable(GL_SCISSOR_TEST);
--    glScissor(x, y, boxW, boxH);
--}
--
--enum {
--    COLOR_BLACK = 0,
--    COLOR_RED,
--    COLOR_GREEN,
--    COLOR_YELLOW,
--    COLOR_BLUE,
--    COLOR_MAGENTA,
--    COLOR_CYAN,
--    COLOR_WHITE
--};
--
--static float RGBMap[9][3] = {
--    {0, 0, 0},
--    {1, 0, 0},
--    {0, 1, 0},
--    {1, 1, 0},
--    {0, 0, 1},
--    {1, 0, 1},
--    {0, 1, 1},
--    {1, 1, 1},
--    {0.5, 0.5, 0.5}
--};
--
--static void SetColor(int c)
--{
--     glColor3fv(RGBMap[c]);
--}
--
--static void Point(void)
--{
--    GLint i;
--
--    glBegin(GL_POINTS);
--	SetColor(COLOR_WHITE);
--	glVertex2i(0, 0);
--	for (i = 1; i < 8; i++) {
--	    GLint j = i * 2;
--	    SetColor(COLOR_BLACK+i);
--	    glVertex2i(-j, -j);
--	    glVertex2i(-j, 0);
--	    glVertex2i(-j, j);
--	    glVertex2i(0, j);
--	    glVertex2i(j, j);
--	    glVertex2i(j, 0);
--	    glVertex2i(j, -j);
--	    glVertex2i(0, -j);
--	}
--    glEnd();
--}
--
--static void Lines(void)
--{
--    GLint i;
--
--    glPushMatrix();
--
--    glTranslatef(-12, 0, 0);
--    for (i = 1; i < 8; i++) {
--	SetColor(COLOR_BLACK+i);
--	glBegin(GL_LINES);
--	    glVertex2i(-boxW/4, -boxH/4);
--	    glVertex2i(boxW/4, boxH/4);
--	glEnd();
--	glTranslatef(4, 0, 0);
--    }
--
--    glPopMatrix();
--
--    glBegin(GL_LINES);
--	glVertex2i(0, 0);
--    glEnd();
--}
--
--static void LineStrip(void)
--{
--
--    glBegin(GL_LINE_STRIP);
--	SetColor(COLOR_RED);
--	glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(-boxH/4));
--	SetColor(COLOR_GREEN);
--	glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(boxH/4));
--	SetColor(COLOR_BLUE);
--	glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(boxH/4));
--	SetColor(COLOR_WHITE);
--	glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(-boxH/4));
--    glEnd();
--
--    glBegin(GL_LINE_STRIP);
--	glVertex2i(0, 0);
--    glEnd();
--}
--
--static void LineLoop(void)
--{
--
--    glBegin(GL_LINE_LOOP);
--	SetColor(COLOR_RED);
--	glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(-boxH/4));
--	SetColor(COLOR_GREEN);
--	glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(boxH/4));
--	SetColor(COLOR_BLUE);
--	glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(boxH/4));
--	SetColor(COLOR_WHITE);
--	glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(-boxH/4));
--    glEnd();
--
--    glEnable(GL_LOGIC_OP);
--    glLogicOp(GL_XOR);
--
--    glEnable(GL_BLEND);
--    glBlendFunc(GL_ONE, GL_ONE);
--
--    SetColor(COLOR_MAGENTA);
--    glBegin(GL_LINE_LOOP);
--	glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(-boxH/8));
--	glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(boxH/8));
--    glEnd();
--    glBegin(GL_LINE_LOOP);
--	glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(boxH/8+5));
--	glVertex2f(PIXEL_CENTER(boxW/8), PIXEL_CENTER(boxH/8+5));
--    glEnd();
--    glDisable(GL_LOGIC_OP);
--    glDisable(GL_BLEND);
--
--    SetColor(COLOR_GREEN);
--    glBegin(GL_POINTS);
--	glVertex2i(0, 0);
--    glEnd();
--
--    glBegin(GL_LINE_LOOP);
--	glVertex2i(0, 0);
--    glEnd();
--}
--
--static void Bitmap(void)
--{
--
--    glBegin(GL_LINES);
--	SetColor(COLOR_GREEN);
--	glVertex2i(-boxW/2, 0);
--	glVertex2i(boxW/2, 0);
--	glVertex2i(0, -boxH/2);
--	glVertex2i(0, boxH/2);
--	SetColor(COLOR_RED);
--	glVertex2i(0, -3);
--	glVertex2i(0, -3+OPENGL_HEIGHT);
--	SetColor(COLOR_BLUE);
--	glVertex2i(0, -3);
--	glVertex2i(OPENGL_WIDTH, -3);
--    glEnd();
--
--    SetColor(COLOR_GREEN);
--
--    glPixelStorei(GL_UNPACK_LSB_FIRST, GL_TRUE);
--    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
--
--    glRasterPos2i(0, 0);
--    glBitmap(OPENGL_WIDTH, OPENGL_HEIGHT, 0, 3, 0.0, 0.0, OpenGL_bits);
--}
--
--static void Triangles(void)
--{
--
--    glBegin(GL_TRIANGLES);
--	SetColor(COLOR_GREEN);
--	glVertex2i(-boxW/4, -boxH/4);
--	SetColor(COLOR_RED);
--	glVertex2i(-boxW/8, -boxH/16);
--	SetColor(COLOR_BLUE);
--	glVertex2i(boxW/8, -boxH/16);
--
--	SetColor(COLOR_GREEN);
--	glVertex2i(-boxW/4, boxH/4);
--	SetColor(COLOR_RED);
--	glVertex2i(-boxW/8, boxH/16);
--	SetColor(COLOR_BLUE);
--	glVertex2i(boxW/8, boxH/16);
--    glEnd();
--
--    glBegin(GL_TRIANGLES);
--	glVertex2i(0, 0);
--	glVertex2i(-100, 100);
--    glEnd();
--}
--
--static void TriangleStrip(void)
--{
--
--    glBegin(GL_TRIANGLE_STRIP);
--	SetColor(COLOR_GREEN);
--	glVertex2i(-boxW/4, -boxH/4);
--	SetColor(COLOR_RED);
--	glVertex2i(-boxW/4, boxH/4);
--	SetColor(COLOR_BLUE);
--	glVertex2i(0, -boxH/4);
--	SetColor(COLOR_WHITE);
--	glVertex2i(0, boxH/4);
--	SetColor(COLOR_CYAN);
--	glVertex2i(boxW/4, -boxH/4);
--	SetColor(COLOR_YELLOW);
--	glVertex2i(boxW/4, boxH/4);
--    glEnd();
--
--    glBegin(GL_TRIANGLE_STRIP);
--	glVertex2i(0, 0);
--	glVertex2i(-100, 100);
--    glEnd();
--}
--
--static void TriangleFan(void)
--{
--    GLint vx[8][2];
--    GLint x0, y0, x1, y1, x2, y2, x3, y3;
--    GLint i;
--
--    y0 = -boxH/4;
--    y1 = y0 + boxH/2/3;
--    y2 = y1 + boxH/2/3;
--    y3 = boxH/4;
--    x0 = -boxW/4;
--    x1 = x0 + boxW/2/3;
--    x2 = x1 + boxW/2/3;
--    x3 = boxW/4;
--
--    vx[0][0] = x0; vx[0][1] = y1;
--    vx[1][0] = x0; vx[1][1] = y2;
--    vx[2][0] = x1; vx[2][1] = y3;
--    vx[3][0] = x2; vx[3][1] = y3;
--    vx[4][0] = x3; vx[4][1] = y2;
--    vx[5][0] = x3; vx[5][1] = y1;
--    vx[6][0] = x2; vx[6][1] = y0;
--    vx[7][0] = x1; vx[7][1] = y0;
--
--    glBegin(GL_TRIANGLE_FAN);
--	SetColor(COLOR_WHITE);
--	glVertex2i(0, 0);
--	for (i = 0; i < 8; i++) {
--	    SetColor(COLOR_WHITE-i);
--	    glVertex2iv(vx[i]);
--	}
--    glEnd();
--
--    glBegin(GL_TRIANGLE_FAN);
--	glVertex2i(0, 0);
--	glVertex2i(-100, 100);
--    glEnd();
--}
--
--static void Rect(void)
--{
--
--    SetColor(COLOR_GREEN);
--    glRecti(-boxW/4, -boxH/4, boxW/4, boxH/4);
--}
--
--static void PolygonFunc(void)
--{
--    GLint vx[8][2];
--    GLint x0, y0, x1, y1, x2, y2, x3, y3;
--    GLint i;
--
--    y0 = -boxH/4;
--    y1 = y0 + boxH/2/3;
--    y2 = y1 + boxH/2/3;
--    y3 = boxH/4;
--    x0 = -boxW/4;
--    x1 = x0 + boxW/2/3;
--    x2 = x1 + boxW/2/3;
--    x3 = boxW/4;
--
--    vx[0][0] = x0; vx[0][1] = y1;
--    vx[1][0] = x0; vx[1][1] = y2;
--    vx[2][0] = x1; vx[2][1] = y3;
--    vx[3][0] = x2; vx[3][1] = y3;
--    vx[4][0] = x3; vx[4][1] = y2;
--    vx[5][0] = x3; vx[5][1] = y1;
--    vx[6][0] = x2; vx[6][1] = y0;
--    vx[7][0] = x1; vx[7][1] = y0;
--
--    glBegin(GL_POLYGON);
--	for (i = 0; i < 8; i++) {
--	    SetColor(COLOR_WHITE-i);
--	    glVertex2iv(vx[i]);
--	}
--    glEnd();
--
--    glBegin(GL_POLYGON);
--	glVertex2i(0, 0);
--	glVertex2i(100, 100);
--    glEnd();
--}
--
--static void Quads(void)
--{
--
--    glBegin(GL_QUADS);
--	SetColor(COLOR_GREEN);
--	glVertex2i(-boxW/4, -boxH/4);
--	SetColor(COLOR_RED);
--	glVertex2i(-boxW/8, -boxH/16);
--	SetColor(COLOR_BLUE);
--	glVertex2i(boxW/8, -boxH/16);
--	SetColor(COLOR_WHITE);
--	glVertex2i(boxW/4, -boxH/4);
--
--	SetColor(COLOR_GREEN);
--	glVertex2i(-boxW/4, boxH/4);
--	SetColor(COLOR_RED);
--	glVertex2i(-boxW/8, boxH/16);
--	SetColor(COLOR_BLUE);
--	glVertex2i(boxW/8, boxH/16);
--	SetColor(COLOR_WHITE);
--	glVertex2i(boxW/4, boxH/4);
--    glEnd();
--
--    glBegin(GL_QUADS);
--	glVertex2i(0, 0);
--	glVertex2i(100, 100);
--	glVertex2i(-100, 100);
--    glEnd();
--}
--
--static void QuadStrip(void)
--{
--
--    glBegin(GL_QUAD_STRIP);
--	SetColor(COLOR_GREEN);
--	glVertex2i(-boxW/4, -boxH/4);
--	SetColor(COLOR_RED);
--	glVertex2i(-boxW/4, boxH/4);
--	SetColor(COLOR_BLUE);
--	glVertex2i(0, -boxH/4);
--	SetColor(COLOR_WHITE);
--	glVertex2i(0, boxH/4);
--	SetColor(COLOR_CYAN);
--	glVertex2i(boxW/4, -boxH/4);
--	SetColor(COLOR_YELLOW);
--	glVertex2i(boxW/4, boxH/4);
--    glEnd();
--
--    glBegin(GL_QUAD_STRIP);
--	glVertex2i(0, 0);
--	glVertex2i(100, 100);
--	glVertex2i(-100, 100);
--    glEnd();
--}
--
--static void Draw(EGLDisplay dpy, EGLSurface surf)
--{
--
--    glViewport(0, 0, windW, windH);
--    glDisable(GL_SCISSOR_TEST);
--
--    glPushAttrib(GL_COLOR_BUFFER_BIT);
--
--    glColorMask(1, 1, 1, 1);
--    glIndexMask(~0);
--
--    glClearColor(0.0, 0.0, 0.0, 0.0);
--    glClear(GL_COLOR_BUFFER_BIT);
--
--    glPopAttrib();
--
--    if (mode1) {
--	glShadeModel(GL_SMOOTH);
--    } else {
--	glShadeModel(GL_FLAT);
--    }
--
--    if (mode2) {
--	glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
--    } else {
--	glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
--    }
--
--    Viewport(0, 0); Point();
--    Viewport(0, 1); Lines();
--    Viewport(0, 2); LineStrip();
--    Viewport(0, 3); LineLoop();
--
--    Viewport(1, 0); Bitmap();
--
--    Viewport(1, 1); TriangleFan();
--    Viewport(1, 2); Triangles();
--    Viewport(1, 3); TriangleStrip();
--
--    Viewport(2, 0); Rect();
--    Viewport(2, 1); PolygonFunc();
--    Viewport(2, 2); Quads();
--    Viewport(2, 3); QuadStrip();
--
--    glFlush();
--
--    if (doubleBuffer) {
--	eglSwapBuffers(dpy, surf);
--    }
--}
--
--static void
--write_ppm(const char *filename, const GLubyte *buffer, int width, int height)
--{
--   const int binary = 0;
--   FILE *f = fopen( filename, "w" );
--   if (f) {
--      int i, x, y;
--      const GLubyte *ptr = buffer;
--      if (binary) {
--         fprintf(f,"P6\n");
--         fprintf(f,"# ppm-file created by osdemo.c\n");
--         fprintf(f,"%i %i\n", width,height);
--         fprintf(f,"255\n");
--         fclose(f);
--         f = fopen( filename, "ab" );  /* reopen in binary append mode */
--         for (y=height-1; y>=0; y--) {
--            for (x=0; x<width; x++) {
--               i = (y*width + x) * 4;
--               fputc(ptr[i], f);   /* write red */
--               fputc(ptr[i+1], f); /* write green */
--               fputc(ptr[i+2], f); /* write blue */
--            }
--         }
--      }
--      else {
--         /*ASCII*/
--         int counter = 0;
--         fprintf(f,"P3\n");
--         fprintf(f,"# ascii ppm file created by osdemo.c\n");
--         fprintf(f,"%i %i\n", width, height);
--         fprintf(f,"255\n");
--         for (y=height-1; y>=0; y--) {
--            for (x=0; x<width; x++) {
--               i = (y*width + x) * 4;
--               fprintf(f, " %3d %3d %3d", ptr[i], ptr[i+1], ptr[i+2]);
--               counter++;
--               if (counter % 5 == 0)
--                  fprintf(f, "\n");
--            }
--         }
--      }
--      fclose(f);
--   }
--}
--#endif
--
--int
--main(int argc, char *argv[])
--{
--   int maj, min;
--#ifdef EGL_MESA_screen_surface
--   EGLContext ctx;
--   EGLSurface screen_surf;
--   EGLConfig configs[10];
--   EGLScreenMESA screen;
--   EGLModeMESA mode;
--   EGLint numConfigs, count;
--   EGLBoolean b;
--   const GLubyte *bitmap;
--   EGLint screenAttribs[32];
--   EGLint i;
--#endif
--
--   EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
--   assert(d);
--
--   if (!eglInitialize(d, &maj, &min)) {
--      printf("demo: eglInitialize failed\n");
--      exit(1);
--   }
--
--   printf("EGL version = %d.%d\n", maj, min);
--   printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
--   if (!strstr(eglQueryString(d, EGL_EXTENSIONS),
--               "EGL_MESA_screen_surface")) {
--      printf("EGL_MESA_screen_surface is not supported\n");
--      exit(1);
--   }
--
--#ifdef EGL_MESA_screen_surface
--   eglGetConfigs(d, configs, 10, &numConfigs);
--   eglGetScreensMESA(d, &screen, 1, &count);
--   eglGetModesMESA(d, screen, &mode, 1, &count);
--
--   eglBindAPI(EGL_OPENGL_API);
--   ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
--   if (ctx == EGL_NO_CONTEXT) {
--      printf("failed to create context\n");
--      return 0;
--   }
--
--   i = 0;
--   screenAttribs[i++] = EGL_WIDTH;
--   eglGetModeAttribMESA(d, mode, EGL_WIDTH, &screenAttribs[i++]);
--   screenAttribs[i++] = EGL_HEIGHT;
--   eglGetModeAttribMESA(d, mode, EGL_HEIGHT, &screenAttribs[i++]);
--   screenAttribs[i] = EGL_NONE;
--
--   screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs);
--   if (screen_surf == EGL_NO_SURFACE) {
--      printf("failed to create screen surface\n");
--      return 0;
--   }
--
--   eglShowScreenSurfaceMESA(d, screen, screen_surf, mode);
--
--   b = eglMakeCurrent(d, screen_surf, screen_surf, ctx);
--   if (!b) {
--      printf("make current failed\n");
--      return 0;
--   }
--   glViewport(0, 0, 1024, 768);
--
--
--   Init();
--   Reshape(1024, 768);
--
--   /* some drivers crash when rendering to front buffer */
--#if 0
--   glDrawBuffer( GL_FRONT );
--   glClearColor( 0, 1.0, 0, 1);
--
--   glClear( GL_COLOR_BUFFER_BIT );
--#endif
--
--   doubleBuffer = 1;
--   glDrawBuffer( GL_BACK );
--
--   Draw(d, screen_surf);
--   sleep(2);
--
--   /* TODO EGL_KHR_lock_surface */
--   bitmap = NULL;
--   if (bitmap)
--      write_ppm("dump.ppm", bitmap, 1024, 768);
--
--   eglDestroySurface(d, screen_surf);
--   eglDestroyContext(d, ctx);
--   eglTerminate(d);
--#endif
--
--   return 0;
--}
-diff --git a/src/egl/opengl/eglinfo.c b/src/egl/opengl/eglinfo.c
-index 8e82e73..1f79fef 100644
---- a/src/egl/opengl/eglinfo.c
-+++ b/src/egl/opengl/eglinfo.c
-@@ -93,10 +93,6 @@ PrintConfigs(EGLDisplay d)
-          strcat(surfString, "pb,");
-       if (surfaces & EGL_PIXMAP_BIT)
-          strcat(surfString, "pix,");
--#ifdef EGL_MESA_screen_surface
--      if (surfaces & EGL_SCREEN_BIT_MESA)
--         strcat(surfString, "scrn,");
--#endif
-       if (strlen(surfString) > 0)
-          surfString[strlen(surfString) - 1] = 0;
- 
-@@ -117,45 +113,6 @@ PrintConfigs(EGLDisplay d)
- }
- 
- 
--/**
-- * Print table of all available configurations.
-- */
--static void
--PrintModes(EGLDisplay d)
--{
--#ifdef EGL_MESA_screen_surface
--   const char *extensions = eglQueryString(d, EGL_EXTENSIONS);
--   if (strstr(extensions, "EGL_MESA_screen_surface")) {
--      EGLScreenMESA screens[MAX_SCREENS];
--      EGLint numScreens = 1, scrn;
--      EGLModeMESA modes[MAX_MODES];
--
--      eglGetScreensMESA(d, screens, MAX_SCREENS, &numScreens);
--      printf("Number of Screens: %d\n\n", numScreens);
--
--      for (scrn = 0; scrn < numScreens; scrn++) {
--         EGLint numModes, i;
--
--         eglGetModesMESA(d, screens[scrn], modes, MAX_MODES, &numModes);
--
--         printf("Screen %d Modes:\n", scrn);
--         printf("  id  width height refresh  name\n");
--         printf("-----------------------------------------\n");
--         for (i = 0; i < numModes; i++) {
--            EGLint id, w, h, r;
--            const char *str;
--            eglGetModeAttribMESA(d, modes[i], EGL_MODE_ID_MESA, &id);
--            eglGetModeAttribMESA(d, modes[i], EGL_WIDTH, &w);
--            eglGetModeAttribMESA(d, modes[i], EGL_HEIGHT, &h);
--            eglGetModeAttribMESA(d, modes[i], EGL_REFRESH_RATE_MESA, &r);
--            str = eglQueryModeStringMESA(d, modes[i]);
--            printf("0x%02x %5d  %5d   %.3f  %s\n", id, w, h, r / 1000.0, str);
--         }
--      }
--   }
--#endif
--}
--
- static void
- PrintExtensions(EGLDisplay d)
- {
-@@ -215,8 +172,6 @@ main(int argc, char *argv[])
- 
-    PrintConfigs(d);
- 
--   PrintModes(d);
--
-    eglTerminate(d);
- 
-    return 0;
-diff --git a/src/egl/opengles1/Makefile.am b/src/egl/opengles1/Makefile.am
-index 516e516..1cc2e1f 100644
---- a/src/egl/opengles1/Makefile.am
-+++ b/src/egl/opengles1/Makefile.am
-@@ -38,24 +38,6 @@ AM_LDFLAGS = \
- 
- bin_PROGRAMS =
- 
--if HAVE_EGL
--if HAVE_GLESV1
--bin_PROGRAMS += \
--	drawtex_screen \
--	gears_screen \
--	torus_screen \
--	tri_screen
--
--drawtex_screen_SOURCES = drawtex.c
--gears_screen_SOURCES = gears.c
--torus_screen_SOURCES = torus.c
--tri_screen_SOURCES = tri.c
--
--drawtex_screen_LDADD = ../eglut/libeglut_screen.la
--gears_screen_LDADD = ../eglut/libeglut_screen.la
--torus_screen_LDADD = ../eglut/libeglut_screen.la
--tri_screen_LDADD = ../eglut/libeglut_screen.la
--
- if HAVE_X11
- bin_PROGRAMS += \
- 	clear \
-@@ -94,5 +76,3 @@ gears_x11_LDADD = ../eglut/libeglut_x11.la
- torus_x11_LDADD = ../eglut/libeglut_x11.la
- tri_x11_LDADD = ../eglut/libeglut_x11.la
- endif
--endif
--endif
-diff --git a/src/egl/opengles2/Makefile.am b/src/egl/opengles2/Makefile.am
-index 74af460..422cb03 100644
---- a/src/egl/opengles2/Makefile.am
-+++ b/src/egl/opengles2/Makefile.am
-@@ -33,13 +33,7 @@ AM_LDFLAGS = \
- 	$(EGL_LIBS) \
- 	-lm
- 
--if HAVE_EGL
--if HAVE_GLESV2
--bin_PROGRAMS = \
--	es2gears_screen
--
--es2gears_screen_SOURCES = es2gears.c
--es2gears_screen_LDADD = ../eglut/libeglut_screen.la
-+bin_PROGRAMS =
- 
- if HAVE_WAYLAND
- bin_PROGRAMS += es2gears_wayland
-@@ -59,6 +53,4 @@ es2gears_x11_SOURCES = es2gears.c
- es2gears_x11_LDADD = ../eglut/libeglut_x11.la
- es2tri_LDADD = $(X11_LIBS)
- endif
--endif
--endif
- 
-diff --git a/src/egl/openvg/Makefile.am b/src/egl/openvg/Makefile.am
-index b545225..5fd1cf8 100644
---- a/src/egl/openvg/Makefile.am
-+++ b/src/egl/openvg/Makefile.am
-@@ -50,21 +50,13 @@ endif
- if HAVE_EGL
- if HAVE_VG
- bin_PROGRAMS = \
--	lion_screen \
--	sp_screen \
- 	$(EGL_X11_DEMOS)
- endif
- endif
- 
--lion_screen_SOURCES = lion.c lion-render.c lion-render.h
--sp_screen_SOURCES = sp.c
--
- lion_x11_SOURCES = lion.c lion-render.c lion-render.h
- sp_x11_SOURCES = sp.c
- 
--lion_screen_LDADD = ../eglut/libeglut_screen.la
--sp_screen_LDADD = ../eglut/libeglut_screen.la
--
- lion_x11_LDADD = ../eglut/libeglut_x11.la
- sp_x11_LDADD = ../eglut/libeglut_x11.la
- 
-diff --git a/src/egl/openvg/Makefile.in b/src/egl/openvg/Makefile.in
-index 99e9288..3652fbb 100644
---- a/src/egl/openvg/Makefile.in
-+++ b/src/egl/openvg/Makefile.in
-@@ -108,8 +108,6 @@ host_triplet = @host@
- @HAVE_FREETYPE2_TRUE@@HAVE_X11_TRUE at am__append_1 = \
- @HAVE_FREETYPE2_TRUE@@HAVE_X11_TRUE@	text
- 
-- at HAVE_EGL_TRUE@@HAVE_VG_TRUE at noinst_PROGRAMS = lion_screen$(EXEEXT) \
-- at HAVE_EGL_TRUE@@HAVE_VG_TRUE@	sp_screen$(EXEEXT) \
- @HAVE_EGL_TRUE@@HAVE_VG_TRUE@	$(am__EXEEXT_2)
- subdir = src/egl/openvg
- DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-@@ -128,9 +126,6 @@ CONFIG_CLEAN_VPATH_FILES =
- @HAVE_X11_TRUE at am__EXEEXT_2 = lion_x11$(EXEEXT) sp_x11$(EXEEXT) \
- @HAVE_X11_TRUE@	$(am__EXEEXT_1)
- PROGRAMS = $(noinst_PROGRAMS)
--am_lion_screen_OBJECTS = lion.$(OBJEXT) lion-render.$(OBJEXT)
--lion_screen_OBJECTS = $(am_lion_screen_OBJECTS)
--lion_screen_DEPENDENCIES = ../eglut/libeglut_screen.la
- AM_V_lt = $(am__v_lt_ at AM_V@)
- am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
- am__v_lt_0 = --silent
-@@ -138,9 +133,6 @@ am__v_lt_1 =
- am_lion_x11_OBJECTS = lion.$(OBJEXT) lion-render.$(OBJEXT)
- lion_x11_OBJECTS = $(am_lion_x11_OBJECTS)
- lion_x11_DEPENDENCIES = ../eglut/libeglut_x11.la
--am_sp_screen_OBJECTS = sp.$(OBJEXT)
--sp_screen_OBJECTS = $(am_sp_screen_OBJECTS)
--sp_screen_DEPENDENCIES = ../eglut/libeglut_screen.la
- am_sp_x11_OBJECTS = sp.$(OBJEXT)
- sp_x11_OBJECTS = $(am_sp_x11_OBJECTS)
- sp_x11_DEPENDENCIES = ../eglut/libeglut_x11.la
-@@ -184,10 +176,10 @@ AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
- am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
- am__v_CCLD_0 = @echo "  CCLD    " $@;
- am__v_CCLD_1 = 
--SOURCES = $(lion_screen_SOURCES) $(lion_x11_SOURCES) \
--	$(sp_screen_SOURCES) $(sp_x11_SOURCES) $(text_SOURCES)
--DIST_SOURCES = $(lion_screen_SOURCES) $(lion_x11_SOURCES) \
--	$(sp_screen_SOURCES) $(sp_x11_SOURCES) $(text_SOURCES)
-+SOURCES = $(lion_x11_SOURCES) \
-+	$(sp_x11_SOURCES) $(text_SOURCES)
-+DIST_SOURCES = $(lion_x11_SOURCES) \
-+	$(sp_x11_SOURCES) $(text_SOURCES)
- RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
- 	ctags-recursive dvi-recursive html-recursive info-recursive \
- 	install-data-recursive install-dvi-recursive \
-@@ -423,12 +415,8 @@ AM_LDFLAGS = \
- 	-lm
- 
- @HAVE_X11_TRUE at EGL_X11_DEMOS = lion_x11 sp_x11 $(am__append_1)
--lion_screen_SOURCES = lion.c lion-render.c lion-render.h
--sp_screen_SOURCES = sp.c
- lion_x11_SOURCES = lion.c lion-render.c lion-render.h
- sp_x11_SOURCES = sp.c
--lion_screen_LDADD = ../eglut/libeglut_screen.la
--sp_screen_LDADD = ../eglut/libeglut_screen.la
- lion_x11_LDADD = ../eglut/libeglut_x11.la
- sp_x11_LDADD = ../eglut/libeglut_x11.la
- text_SOURCES = text.c
-@@ -481,18 +469,10 @@ clean-noinstPROGRAMS:
- 	echo " rm -f" $$list; \
- 	rm -f $$list
- 
--lion_screen$(EXEEXT): $(lion_screen_OBJECTS) $(lion_screen_DEPENDENCIES) $(EXTRA_lion_screen_DEPENDENCIES) 
--	@rm -f lion_screen$(EXEEXT)
--	$(AM_V_CCLD)$(LINK) $(lion_screen_OBJECTS) $(lion_screen_LDADD) $(LIBS)
--
- lion_x11$(EXEEXT): $(lion_x11_OBJECTS) $(lion_x11_DEPENDENCIES) $(EXTRA_lion_x11_DEPENDENCIES) 
- 	@rm -f lion_x11$(EXEEXT)
- 	$(AM_V_CCLD)$(LINK) $(lion_x11_OBJECTS) $(lion_x11_LDADD) $(LIBS)
- 
--sp_screen$(EXEEXT): $(sp_screen_OBJECTS) $(sp_screen_DEPENDENCIES) $(EXTRA_sp_screen_DEPENDENCIES) 
--	@rm -f sp_screen$(EXEEXT)
--	$(AM_V_CCLD)$(LINK) $(sp_screen_OBJECTS) $(sp_screen_LDADD) $(LIBS)
--
- sp_x11$(EXEEXT): $(sp_x11_OBJECTS) $(sp_x11_DEPENDENCIES) $(EXTRA_sp_x11_DEPENDENCIES) 
- 	@rm -f sp_x11$(EXEEXT)
- 	$(AM_V_CCLD)$(LINK) $(sp_x11_OBJECTS) $(sp_x11_LDADD) $(LIBS)
-
diff --git a/meta/recipes-graphics/mesa/mesa-demos_8.2.0.bb b/meta/recipes-graphics/mesa/mesa-demos_8.3.0.bb
similarity index 68%
rename from meta/recipes-graphics/mesa/mesa-demos_8.2.0.bb
rename to meta/recipes-graphics/mesa/mesa-demos_8.3.0.bb
index 53bd5e2..ee0bb02 100644
--- a/meta/recipes-graphics/mesa/mesa-demos_8.2.0.bb
+++ b/meta/recipes-graphics/mesa/mesa-demos_8.3.0.bb
@@ -10,22 +10,17 @@ LIC_FILES_CHKSUM = "file://src/xdemos/glxgears.c;beginline=1;endline=20;md5=9142
                     file://src/xdemos/glxdemo.c;beginline=1;endline=8;md5=b01d5ab1aee94d35b7efaa2ef48e1a06"
 
 SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/demos/${PV}/${BPN}-${PV}.tar.bz2 \
-    file://0001-mesa-demos-Add-missing-data-files.patch \
-    file://0002-Correctly-implement-with-AC_WITH-glut-so-that-withou.patch \
-    file://0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch \
-    file://0004-Use-DEMOS_DATA_DIR-to-locate-data-files.patch \
-    file://0005-Fix-build-when-EGL_MESA_screen_surface-extension-isn.patch \
-    file://0006-Query-display-for-EGL_MESA_screen_surface-extension-.patch \
-    file://0007-Install-few-more-test-programs.patch \
-    file://0008-glsl-perf-Add-few-missing-.glsl-.vert-.frag-files-to.patch \
-    file://0009-glsl-perf-Install-.glsl-.vert-.frag-files.patch \
-    file://0010-sharedtex_mt-fix-rendering-thread-hang.patch \
-    file://0011-drop-demos-dependant-on-obsolete-MESA_screen_surface.patch \
-    file://0012-mesa-demos-OpenVG-demos-with-single-frame-need-eglSw.patch \
-    file://0013-only-build-GLX-demos-if-needed.patch \
-"
-SRC_URI[md5sum] = "72613a2c8c013716db02e3ff59d29061"
-SRC_URI[sha256sum] = "e4bfecb5816ddd4b7b37c1bc876b63f1f7f06fda5879221a9774d0952f90ba92"
+           file://0001-mesa-demos-Add-missing-data-files.patch \
+           file://0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch \
+           file://0004-Use-DEMOS_DATA_DIR-to-locate-data-files.patch \
+           file://0007-Install-few-more-test-programs.patch \
+           file://0008-glsl-perf-Add-few-missing-.glsl-.vert-.frag-files-to.patch \
+           file://0009-glsl-perf-Install-.glsl-.vert-.frag-files.patch \
+           file://0012-mesa-demos-OpenVG-demos-with-single-frame-need-eglSw.patch \
+           file://0013-only-build-GLX-demos-if-needed.patch \
+           "
+SRC_URI[md5sum] = "628e75c23c17394f11a316c36f8e4164"
+SRC_URI[sha256sum] = "c173154bbd0d5fb53d732471984def42fb1b14ac85fcb834138fb9518b3e0bef"
 
 inherit autotools pkgconfig distro_features_check
 # depends on virtual/egl, virtual/libgl ...
-- 
2.1.4




More information about the Openembedded-core mailing list