diff options
Diffstat (limited to 'import-layers/yocto-poky/meta/recipes-graphics/mesa')
14 files changed, 334 insertions, 563 deletions
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/files/clang-compile-PR89599.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/files/clang-compile-PR89599.patch new file mode 100644 index 000000000..48bd32567 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-graphics/mesa/files/clang-compile-PR89599.patch @@ -0,0 +1,116 @@ +From 5ec140c17b54c25920091501b665b9aa809cc5e8 Mon Sep 17 00:00:00 2001 +From: Matt Turner <mattst88@gmail.com> +Date: Mon, 11 Jul 2016 10:44:25 -0700 +Subject: mapi: Massage code to allow clang to compile. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +According to https://llvm.org/bugs/show_bug.cgi?id=19778#c3 this code +was violating the spec, resulting in it failing to compile. + +Cc: mesa-stable@lists.freedesktop.org +Co-authored-by: Tomasz Paweł Gajc <tpgxyz@gmail.com> +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89599 +Reviewed-by: Emil Velikov <emil.velikov@collabora.com> + +Upstream-Status: Backport +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +diff --git a/configure.ac b/configure.ac +index 3799d8d..1ca8359 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -226,6 +226,7 @@ AX_GCC_FUNC_ATTRIBUTE([packed]) + AX_GCC_FUNC_ATTRIBUTE([pure]) + AX_GCC_FUNC_ATTRIBUTE([returns_nonnull]) + AX_GCC_FUNC_ATTRIBUTE([unused]) ++AX_GCC_FUNC_ATTRIBUTE([visibility]) + AX_GCC_FUNC_ATTRIBUTE([warn_unused_result]) + AX_GCC_FUNC_ATTRIBUTE([weak]) + +diff --git a/src/mapi/entry_x86-64_tls.h b/src/mapi/entry_x86-64_tls.h +index 38faccc..c5262a1 100644 +--- a/src/mapi/entry_x86-64_tls.h ++++ b/src/mapi/entry_x86-64_tls.h +@@ -25,6 +25,11 @@ + * Chia-I Wu <olv@lunarg.com> + */ + ++#ifdef HAVE_FUNC_ATTRIBUTE_VISIBIITY ++#define HIDDEN __attribute__((visibility("hidden"))) ++#else ++#define HIDDEN ++#endif + + __asm__(".text\n" + ".balign 32\n" +@@ -54,8 +59,8 @@ entry_patch_public(void) + { + } + +-static char +-x86_64_entry_start[]; ++extern char ++x86_64_entry_start[] HIDDEN; + + mapi_func + entry_get_public(int slot) +diff --git a/src/mapi/entry_x86_tls.h b/src/mapi/entry_x86_tls.h +index 46d2ece..231b409 100644 +--- a/src/mapi/entry_x86_tls.h ++++ b/src/mapi/entry_x86_tls.h +@@ -27,6 +27,12 @@ + + #include <string.h> + ++#ifdef HAVE_FUNC_ATTRIBUTE_VISIBIITY ++#define HIDDEN __attribute__((visibility("hidden"))) ++#else ++#define HIDDEN ++#endif ++ + __asm__(".text"); + + __asm__("x86_current_tls:\n\t" +@@ -71,8 +77,8 @@ __asm__(".text"); + extern unsigned long + x86_current_tls(); + +-static char x86_entry_start[]; +-static char x86_entry_end[]; ++extern char x86_entry_start[] HIDDEN; ++extern char x86_entry_end[] HIDDEN; + + void + entry_patch_public(void) +diff --git a/src/mapi/entry_x86_tsd.h b/src/mapi/entry_x86_tsd.h +index ea7bacb..03d9735 100644 +--- a/src/mapi/entry_x86_tsd.h ++++ b/src/mapi/entry_x86_tsd.h +@@ -25,6 +25,11 @@ + * Chia-I Wu <olv@lunarg.com> + */ + ++#ifdef HAVE_FUNC_ATTRIBUTE_VISIBIITY ++#define HIDDEN __attribute__((visibility("hidden"))) ++#else ++#define HIDDEN ++#endif + + #define X86_ENTRY_SIZE 32 + +@@ -58,8 +63,8 @@ __asm__(".balign 32\n" + #include <string.h> + #include "u_execmem.h" + +-static const char x86_entry_start[]; +-static const char x86_entry_end[]; ++extern const char x86_entry_start[] HIDDEN; ++extern const char x86_entry_end[] HIDDEN; + + void + entry_patch_public(void) +-- +cgit v0.10.2 + diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/files/disable-asm-on-non-gcc.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/files/disable-asm-on-non-gcc.patch new file mode 100644 index 000000000..d2d67558b --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-graphics/mesa/files/disable-asm-on-non-gcc.patch @@ -0,0 +1,29 @@ +Configure checks for compiler to be gcc and then it enables asm_offsets +generation. see + +https://cgit.freedesktop.org/mesa/mesa/commit/?id=73c9b4b0e05fc66629ba250846948dc55c0e7a0d + +However, we missed the check when enabling this on cross compilation +when architecture for both host and target is x86 + +Fixes errors like +./gen_matypes > matypes.h +/bin/bash: ./gen_matypes: No such file or directory + +-Khem + +Upstream-Status: Submitted + +Index: mesa-12.0.1/configure.ac +=================================================================== +--- mesa-12.0.1.orig/configure.ac ++++ mesa-12.0.1/configure.ac +@@ -732,7 +732,7 @@ test "x$enable_asm" = xno && AC_MSG_RESU + if test "x$enable_asm" = xyes -a "x$cross_compiling" = xyes; then + case "$host_cpu" in + i?86 | x86_64 | amd64) +- if test "x$host_cpu" != "x$target_cpu"; then ++ if test "x$host_cpu" != "x$target_cpu" -o "x$acv_mesa_CLANG" = xyes; then + enable_asm=no + AC_MSG_RESULT([no, cross compiling]) + fi diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0002-Correctly-implement-with-AC_WITH-glut-so-that-withou.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0002-Correctly-implement-with-AC_WITH-glut-so-that-withou.patch deleted file mode 100644 index 09054cb75..000000000 --- a/import-layers/yocto-poky/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@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@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/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch index 6b58c2b77..f6b59a11f 100644 --- a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0003-configure-Allow-to-disable-demos-which-require-GLEW-.patch +++ b/import-layers/yocto-poky/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@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@gmail.com> + +Port to 8.3.0 +Signed-off-by: Jussi Kukkonen <jussi.kukkonen@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@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/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0005-Fix-build-when-EGL_MESA_screen_surface-extension-isn.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0005-Fix-build-when-EGL_MESA_screen_surface-extension-isn.patch deleted file mode 100644 index aac2a3729..000000000 --- a/import-layers/yocto-poky/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@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@imgtec.com> - -Applied and fixed up in Yocto by... - -Integrated-by: Tom Zanussi <tom.zanussi@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/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0006-Query-display-for-EGL_MESA_screen_surface-extension-.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0006-Query-display-for-EGL_MESA_screen_surface-extension-.patch deleted file mode 100644 index 12e0805f1..000000000 --- a/import-layers/yocto-poky/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@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@imgtec.com> - -Applied and fixed up in Yocto by... - -Integrated-by: Tom Zanussi <tom.zanussi@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/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0007-Install-few-more-test-programs.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0007-Install-few-more-test-programs.patch index 89d2fac4f..6b676cdd2 100644 --- a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0007-Install-few-more-test-programs.patch +++ b/import-layers/yocto-poky/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@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@gmail.com> + +Signed-off-by: Jussi Kukkonen <jussi.kukkonen@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@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/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0010-sharedtex_mt-fix-rendering-thread-hang.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0010-sharedtex_mt-fix-rendering-thread-hang.patch deleted file mode 100644 index 04e1b446f..000000000 --- a/import-layers/yocto-poky/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@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@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/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0012-mesa-demos-OpenVG-demos-with-single-frame-need-eglSw.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0012-mesa-demos-OpenVG-demos-with-single-frame-need-eglSw.patch new file mode 100644 index 000000000..c68764740 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0012-mesa-demos-OpenVG-demos-with-single-frame-need-eglSw.patch @@ -0,0 +1,44 @@ +From 3aa84c47e88a4c38446ce1323abf6f2c77389104 Mon Sep 17 00:00:00 2001 +From: Prabhu <prabhu.sundararaj@freescale.com> +Date: Mon, 16 Nov 2015 17:09:32 -0600 +Subject: [PATCH] mesa-demos: OpenVG demos with single frame need eglSwapBuffer + +sp and text demos rendering single frame. to display the +single frame rendered needed a eglSwapBuffer to diplay to window. +Hence added eglutPostRedisplay to display the frame + +Upstream-Status: Pending + +Signed-off-by: Prabhu <prabhu.sundararaj@freescale.com> +--- + src/egl/openvg/sp.c | 1 + + src/egl/openvg/text.c | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/src/egl/openvg/sp.c b/src/egl/openvg/sp.c +index a20c0a3..468e91e 100644 +--- a/src/egl/openvg/sp.c ++++ b/src/egl/openvg/sp.c +@@ -500,6 +500,7 @@ draw(void) + } + + vgFlush(); ++ eglutPostRedisplay(); + } + + +diff --git a/src/egl/openvg/text.c b/src/egl/openvg/text.c +index f5c6de8..492581c 100644 +--- a/src/egl/openvg/text.c ++++ b/src/egl/openvg/text.c +@@ -360,6 +360,7 @@ display(void) + { + vgClear(0, 0, width, height); + glyph_string_draw(10.0, 10.0); ++ eglutPostRedisplay(); + } + + +-- +2.5.1 + diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0013-only-build-GLX-demos-if-needed.patch b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0013-only-build-GLX-demos-if-needed.patch new file mode 100644 index 000000000..e7be4dfbe --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos/0013-only-build-GLX-demos-if-needed.patch @@ -0,0 +1,62 @@ +From 322af294390a7f4e1524c5a79312be6cbebce988 Mon Sep 17 00:00:00 2001 +From: Awais Belal <awais_belal@mentor.com> +Date: Wed, 11 Nov 2015 17:22:12 +0500 +Subject: [PATCH] only build GLX demos if needed + +There are platforms that default to EGL only configurations +in which case the GLX applications are not required +at all. Allow the user to control generation of these +demos as needed through a configure switch. + +Signed-off-by: Awais Belal <awais_belal@mentor.com> +Upstream-Status: Pending +--- + configure.ac | 9 +++++++++ + src/Makefile.am | 6 +++++- + 2 files changed, 14 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index f8ec7e3..1a4d96d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -132,6 +132,11 @@ if test "x$enable_glu" = xyes; then + DEMO_LIBS="$DEMO_LIBS $GLU_LIBS" + fi + ++AC_ARG_ENABLE([glx-demos], ++ [AS_HELP_STRING([--enable-glx-demos], ++ [enable GLX demos @<:@default=auto@:>@])], ++ [glx_demos_enabled="$enableval"], ++ [glx_demos_enabled=yes]) + AC_ARG_ENABLE([egl], + [AS_HELP_STRING([--enable-egl], + [enable EGL library @<:@default=auto@:>@])], +@@ -325,6 +333,7 @@ AC_SUBST([WAYLAND_LIBS]) + + AM_CONDITIONAL(HAVE_GLU, test "x$glu_enabled" = "xyes") + AM_CONDITIONAL(HAVE_GLEW, test "x$glew_enabled" = "xyes") ++AM_CONDITIONAL(HAVE_GLX, test "x$glx_demos_enabled" = "xyes") + AM_CONDITIONAL(HAVE_EGL, test "x$egl_enabled" = "xyes") + 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 8b89dee..a4d7e8f 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -44,8 +44,12 @@ SUBDIRS = \ + slang \ + tests \ + tools \ +- wgl \ ++ wgl ++ ++if HAVE_GLX ++SUBDIRS += \ + xdemos ++endif + + if HAVE_GLEW + SUBDIRS += \ +-- +1.9.1 + diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos_8.2.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos_8.3.0.bb index 557b8c65d..fab0bdb2e 100644 --- a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos_8.2.0.bb +++ b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-demos_8.3.0.bb @@ -10,26 +10,24 @@ 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 \ -" -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 ... -REQUIRED_DISTRO_FEATURES = "opengl" +REQUIRED_DISTRO_FEATURES = "opengl x11" PACKAGECONFIG ?= "drm osmesa freetype2 gbm egl gles1 gles2 \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 glew glu', '', d)}" + x11 glew glu glx" # The Wayland code doesn't work with Wayland 1.0, so disable it for now #${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}" @@ -49,6 +47,7 @@ PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,virtual/libgl wayla PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11" PACKAGECONFIG[glew] = "--enable-glew,--disable-glew,glew" PACKAGECONFIG[glu] = "--enable-glu,--disable-glu,virtual/libgl" +PACKAGECONFIG[glx] = "--enable-glx-demos,--disable-glx-demos" do_install_append() { # it can be completely empty when all PACKAGECONFIG options are disabled diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-gl_11.1.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-gl_12.0.1.bb index fc2bca998..f06a3e9b5 100644 --- a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-gl_11.1.1.bb +++ b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa-gl_12.0.1.bb @@ -8,6 +8,6 @@ PROVIDES = "virtual/libgl virtual/mesa" S = "${WORKDIR}/mesa-${PV}" -PACKAGECONFIG ??= "dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" +PACKAGECONFIG ??= "dri ${MESA_CRYPTO} ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" EXCLUDE_FROM_WORLD = "1" diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa.inc b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa.inc index 442479ae6..e4880ffed 100644 --- a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa.inc +++ b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa.inc @@ -10,7 +10,7 @@ HOMEPAGE = "http://mesa3d.org" BUGTRACKER = "https://bugs.freedesktop.org" SECTION = "x11" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://docs/license.html;md5=6a23445982a7a972ac198e93cc1cb3de" +LIC_FILES_CHKSUM = "file://docs/license.html;md5=899fbe7e42d494c7c8c159c7001693d5" PE = "2" @@ -24,11 +24,13 @@ REQUIRED_DISTRO_FEATURES = "opengl" EXTRA_OECONF = "--enable-shared-glapi" -PACKAGECONFIG ??= "egl gles dri ${MESA_CRYPTO} \ +PACKAGECONFIG ??= "gbm egl gles dri ${MESA_CRYPTO} \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}\ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}\ " +PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm" + X11_DEPS = "xf86driproto glproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes" PACKAGECONFIG[x11] = "--enable-glx-tls,--disable-glx,${X11_DEPS}" PACKAGECONFIG[xvmc] = "--enable-xvmc,--disable-xvmc,libxvmc" @@ -37,7 +39,7 @@ PACKAGECONFIG[wayland] = ",,wayland-native wayland" DRIDRIVERS = "swrast" DRIDRIVERS_append_x86 = ",radeon,r200,nouveau,i965,i915" DRIDRIVERS_append_x86-64 = ",radeon,r200,nouveau,i965,i915" -PACKAGECONFIG[dri] = "--enable-dri --with-dri-drivers=${DRIDRIVERS} --enable-gbm, --disable-dri, dri2proto libdrm" +PACKAGECONFIG[dri] = "--enable-dri --with-dri-drivers=${DRIDRIVERS}, --disable-dri, dri2proto libdrm" PACKAGECONFIG[dri3] = "--enable-dri3, --disable-dri3, dri3proto presentproto libxshmfence" PACKAGECONFIG[gles] = "--enable-gles1 --enable-gles2, --disable-gles1 --disable-gles2" @@ -140,16 +142,17 @@ python mesa_populate_packages() { d.setVar("RREPLACES_%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) import re - dri_drivers_root = os.path.join(d.getVar('libdir', True), "dri") - dri_pkgs = os.listdir(d.getVar('PKGD', True) + dri_drivers_root) - lib_name = d.expand("${MLPREFIX}mesa-megadriver") - for p in dri_pkgs: - m = re.match('^(.*)_dri\.so$', p) - if m: - pkg_name = " ${MLPREFIX}mesa-driver-%s" % legitimize_package_name(m.group(1)) - d.appendVar("RPROVIDES_%s" % lib_name, pkg_name) - d.appendVar("RCONFLICTS_%s" % lib_name, pkg_name) - d.appendVar("RREPLACES_%s" % lib_name, pkg_name) + dri_drivers_root = oe.path.join(d.getVar('PKGD', True), d.getVar('libdir', True), "dri") + if os.path.isdir(dri_drivers_root): + dri_pkgs = os.listdir(dri_drivers_root) + lib_name = d.expand("${MLPREFIX}mesa-megadriver") + for p in dri_pkgs: + m = re.match('^(.*)_dri\.so$', p) + if m: + pkg_name = " ${MLPREFIX}mesa-driver-%s" % legitimize_package_name(m.group(1)) + d.appendVar("RPROVIDES_%s" % lib_name, pkg_name) + d.appendVar("RCONFLICTS_%s" % lib_name, pkg_name) + d.appendVar("RREPLACES_%s" % lib_name, pkg_name) pipe_drivers_root = os.path.join(d.getVar('libdir', True), "gallium-pipe") do_split_packages(d, pipe_drivers_root, '^pipe_(.*)\.so$', 'mesa-driver-pipe-%s', 'Mesa %s pipe driver', extra_depends='') diff --git a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa_11.1.1.bb b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa_12.0.1.bb index 502afcfd8..80189e3ff 100644 --- a/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa_11.1.1.bb +++ b/import-layers/yocto-poky/meta/recipes-graphics/mesa/mesa_12.0.1.bb @@ -2,10 +2,12 @@ require ${BPN}.inc SRC_URI = "ftp://ftp.freedesktop.org/pub/mesa/${PV}/mesa-${PV}.tar.xz \ file://replace_glibc_check_with_linux.patch \ + file://clang-compile-PR89599.patch \ + file://disable-asm-on-non-gcc.patch \ " -SRC_URI[md5sum] = "1043dfb907beecb2a761272455960427" -SRC_URI[sha256sum] = "64db074fc514136b5fb3890111f0d50604db52f0b1e94ba3fcb0fe8668a7fd20" +SRC_URI[md5sum] = "972fd5ad5a63aeabf173fb9adefc6522" +SRC_URI[sha256sum] = "bab24fb79f78c876073527f515ed871fc9c81d816f66c8a0b051d8d653896389" #because we cannot rely on the fact that all apps will use pkgconfig, #make eglplatform.h independent of MESA_EGL_NO_X11_HEADER |