libepoxy supports both openGL/GLX and egl. For i.MX6 machines it is recommended to enable EGL rather than OpenGL/GLX as GLX is supported only on X11 backend.
Signed-off-by: Neena Busireddy <[email protected]> --- ...e-EGL-pkgconfig-for-finding-eglplatform.h.patch | 57 +++++++++++ ...conflicts-between-pkgconfig-s-EGL_LIBS-an.patch | 60 ++++++++++++ ...-platforms-based-on-configuration-results.patch | 109 +++++++++++++++++++++ ...0004-add-an-option-to-disable-glx-support.patch | 38 +++++++ recipes-graphics/libepoxy/libepoxy_%.bbappend | 7 ++ 5 files changed, 271 insertions(+) create mode 100644 recipes-graphics/libepoxy/libepoxy/0001-Use-the-EGL-pkgconfig-for-finding-eglplatform.h.patch create mode 100644 recipes-graphics/libepoxy/libepoxy/0002-Avoid-name-conflicts-between-pkgconfig-s-EGL_LIBS-an.patch create mode 100644 recipes-graphics/libepoxy/libepoxy/0003-select-platforms-based-on-configuration-results.patch create mode 100644 recipes-graphics/libepoxy/libepoxy/0004-add-an-option-to-disable-glx-support.patch create mode 100644 recipes-graphics/libepoxy/libepoxy_%.bbappend diff --git a/recipes-graphics/libepoxy/libepoxy/0001-Use-the-EGL-pkgconfig-for-finding-eglplatform.h.patch b/recipes-graphics/libepoxy/libepoxy/0001-Use-the-EGL-pkgconfig-for-finding-eglplatform.h.patch new file mode 100644 index 0000000..682dadc --- /dev/null +++ b/recipes-graphics/libepoxy/libepoxy/0001-Use-the-EGL-pkgconfig-for-finding-eglplatform.h.patch @@ -0,0 +1,57 @@ +From 0389905fccd84d7ad4fcf0d5af2824bd6cd66288 Mon Sep 17 00:00:00 2001 +From: Eric Anholt <[email protected]> +Date: Fri, 13 Jun 2014 14:59:37 -0700 +Subject: [PATCH 1/4] Use the EGL pkgconfig for finding eglplatform.h. + +We don't ever explicity link against libEGL, so no need to make use of +EGL_LIBS. + +Fixes #30. +--- + configure.ac | 1 + + src/Makefile.am | 1 + + test/Makefile.am | 4 +++- + 3 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 399e351..f97c9b0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -98,6 +98,7 @@ AC_SUBST(EPOXY_LINK_LIBS) + + AM_CONDITIONAL(BUILD_EGL, test x$build_egl = xyes) + if test x$build_egl = xyes; then ++ PKG_CHECK_MODULES(EGL, [egl]) + AC_DEFINE([BUILD_EGL], [1], [build EGL tests]) + fi + +diff --git a/src/Makefile.am b/src/Makefile.am +index 8e20cd6..49c3507 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -28,6 +28,7 @@ AM_CFLAGS = \ + $(CWARNFLAGS) \ + $(VISIBILITY_CFLAGS) \ + $(X11_CFLAGS) \ ++ $(EGL_CFLAGS) \ + $() + + epoxyincludedir = $(includedir)/epoxy +diff --git a/test/Makefile.am b/test/Makefile.am +index b1dcc18..8665fe8 100644 +--- a/test/Makefile.am ++++ b/test/Makefile.am +@@ -46,7 +46,9 @@ libwgl_common_la_LIBADD = $(EPOXY) + AM_CPPFLAGS = \ + -I$(top_srcdir)/include \ + -I$(top_builddir)/include \ +- $(X11_CFLAGS) ++ $(X11_CFLAGS) \ ++ $(EGL_CFLAGS) \ ++ $() + + AM_CFLAGS = $(CWARNFLAGS) + +-- +2.3.6 + diff --git a/recipes-graphics/libepoxy/libepoxy/0002-Avoid-name-conflicts-between-pkgconfig-s-EGL_LIBS-an.patch b/recipes-graphics/libepoxy/libepoxy/0002-Avoid-name-conflicts-between-pkgconfig-s-EGL_LIBS-an.patch new file mode 100644 index 0000000..ba73434 --- /dev/null +++ b/recipes-graphics/libepoxy/libepoxy/0002-Avoid-name-conflicts-between-pkgconfig-s-EGL_LIBS-an.patch @@ -0,0 +1,60 @@ +From 8e641d5caecdc4d6d671026360ff85760dbe3a23 Mon Sep 17 00:00:00 2001 +From: Eric Anholt <[email protected]> +Date: Fri, 13 Jun 2014 15:54:29 -0700 +Subject: [PATCH 2/4] Avoid name conflicts between pkgconfig's EGL_LIBS and a + temporary var. + +I felt a little uncomfortable knowing I had two things defining +EGL_LIBS, but it worked on my system. It failed on the travis ci +build. +--- + test/Makefile.am | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/test/Makefile.am b/test/Makefile.am +index 8665fe8..c8368a2 100644 +--- a/test/Makefile.am ++++ b/test/Makefile.am +@@ -22,9 +22,9 @@ + EPOXY = $(builddir)/../src/libepoxy.la + + check_LTLIBRARIES = \ +- $(EGL_LIBS) \ +- $(GLX_LIBS) \ +- $(WGL_LIBS) \ ++ $(EGL_UTIL_LIB) \ ++ $(GLX_UTIL_LIB) \ ++ $(WGL_UTIL_LIB) \ + $() + + libegl_common_la_SOURCES = \ +@@ -78,7 +78,7 @@ EGL_TESTS = \ + egl_gles2_without_glx \ + $() + +-EGL_LIBS = libegl_common.la ++EGL_UTIL_LIB = libegl_common.la + endif + + if BUILD_GLX +@@ -116,7 +116,7 @@ GLX_TESTS = \ + $(GLX_NON_APPLE_TESTS) \ + $() + +-GLX_LIBS = libglx_common.la ++GLX_UTIL_LIB = libglx_common.la + endif + + if BUILD_WGL +@@ -127,7 +127,7 @@ WGL_TESTS = \ + wgl_usefontbitmaps_unicode$(EXEEXT) \ + $() + +-WGL_LIBS = libwgl_common.la ++WGL_UTIL_LIB = libwgl_common.la + endif + + egl_has_extension_nocontext_LDADD = $(EPOXY) libegl_common.la $(X11_LIBS) +-- +2.3.6 + diff --git a/recipes-graphics/libepoxy/libepoxy/0003-select-platforms-based-on-configuration-results.patch b/recipes-graphics/libepoxy/libepoxy/0003-select-platforms-based-on-configuration-results.patch new file mode 100644 index 0000000..1acf4bd --- /dev/null +++ b/recipes-graphics/libepoxy/libepoxy/0003-select-platforms-based-on-configuration-results.patch @@ -0,0 +1,109 @@ +From 49605218875ad0b1b7bc05011f2802e3b47d476e Mon Sep 17 00:00:00 2001 +From: Prabhu <[email protected]> +Date: Wed, 20 May 2015 16:46:33 -0500 +Subject: [PATCH 3/4] select platforms based on configuration results +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Andreas Müller <[email protected]> + +Signed-off-by: Prabhu <[email protected]> +--- + configure.ac | 13 +++++-------- + src/dispatch_common.c | 9 ++++++--- + src/dispatch_common.h | 3 ++- + 3 files changed, 13 insertions(+), 12 deletions(-) + +diff --git a/configure.ac b/configure.ac +index f97c9b0..40e02bb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -58,6 +58,10 @@ AC_CHECK_HEADER([KHR/khrplatform.h], + # uintptr_t to a void *") by default. Kill that. + XORG_TESTSET_CFLAG(CWARNFLAGS, [-Wno-int-conversion]) + ++PKG_CHECK_MODULES(X11, [x11], [x11=yes], [x11=no]) ++ ++AM_CONDITIONAL(HAVE_X11, test x$x11 = xyes) ++ + has_znow=yes + + case $host_os in +@@ -86,7 +90,7 @@ case $host_os in + ;; + *) + build_egl=yes +- build_glx=yes ++ build_glx=$x11 + build_wgl=no + # On platforms with dlopen, we load everything dynamically and + # don't link against a specific window system or GL implementation. +@@ -144,13 +148,6 @@ esac + + AC_SUBST([VISIBILITY_CFLAGS]) + +-PKG_CHECK_MODULES(X11, [x11], [x11=yes], [x11=no]) +-if test x$x11 = xno -a x$build_glx = xyes; then +- AC_MSG_ERROR([libX11 headers (libx11-dev) required to build with GLX support]) +-fi +- +-AM_CONDITIONAL(HAVE_X11, test x$x11 = xyes) +- + PKG_CHECK_MODULES(GL, [gl], [gl=yes], [gl=no]) + + AC_CONFIG_FILES([ +diff --git a/src/dispatch_common.c b/src/dispatch_common.c +index 9d17878..f5cea75 100644 +--- a/src/dispatch_common.c ++++ b/src/dispatch_common.c +@@ -596,10 +596,13 @@ epoxy_get_proc_address(const char *name) + #elif defined(__APPLE__) + return epoxy_gl_dlsym(name); + #else ++#if PLATFORM_HAS_GLX + if (epoxy_current_context_is_glx()) { + return glXGetProcAddressARB((const GLubyte *)name); +- } else { ++ } else ++#endif /* PLATFORM_HAS_GLX */ + #if PLATFORM_HAS_EGL ++ { + GLenum egl_api = epoxy_egl_get_current_gl_context_api(); + + switch (egl_api) { +@@ -609,10 +612,10 @@ epoxy_get_proc_address(const char *name) + case EGL_NONE: + break; + } +-#endif + } ++#endif /* PLATFORM_HAS_EGL */ + errx(1, "Couldn't find current GLX or EGL context.\n"); +-#endif ++#endif /* _WIN32 | __APPLE__*/ + } + + void +diff --git a/src/dispatch_common.h b/src/dispatch_common.h +index 28bf533..4c64855 100644 +--- a/src/dispatch_common.h ++++ b/src/dispatch_common.h +@@ -21,12 +21,13 @@ + * IN THE SOFTWARE. + */ + ++#include <config.h> + #include <stdbool.h> + + #ifdef _WIN32 + #define PLATFORM_HAS_EGL 0 + #define PLATFORM_HAS_GLX 0 +-#define PLATFORM_HAS_WGL 1 ++#define PLATFORM_HAS_WGL BUILD_WGL + #define EPOXY_IMPORTEXPORT __declspec(dllexport) + #elif defined(__APPLE__) + #define PLATFORM_HAS_EGL 0 +-- +2.3.6 + diff --git a/recipes-graphics/libepoxy/libepoxy/0004-add-an-option-to-disable-glx-support.patch b/recipes-graphics/libepoxy/libepoxy/0004-add-an-option-to-disable-glx-support.patch new file mode 100644 index 0000000..e707f18 --- /dev/null +++ b/recipes-graphics/libepoxy/libepoxy/0004-add-an-option-to-disable-glx-support.patch @@ -0,0 +1,38 @@ +From 689e5595510d2cb5c734dc93430afbd9659d46a7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <[email protected]> +Date: Wed, 6 May 2015 11:05:48 +0200 +Subject: [PATCH 4/4] add an option to disable glx support +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +this option would help us in yocto to get deterministic build results + +Signed-off-by: Andreas Müller <[email protected]> +--- + configure.ac | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 40e02bb..25835cc 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -58,7 +58,14 @@ AC_CHECK_HEADER([KHR/khrplatform.h], + # uintptr_t to a void *") by default. Kill that. + XORG_TESTSET_CFLAG(CWARNFLAGS, [-Wno-int-conversion]) + +-PKG_CHECK_MODULES(X11, [x11], [x11=yes], [x11=no]) ++AC_ARG_ENABLE([glx], ++ [AS_HELP_STRING([--disable-glx], ++ [disable if you don't want x11/glx support])], ++ [], ++ [enable_glx=yes] ++ ) ++ ++PKG_CHECK_MODULES(X11, [x11], [x11=$enable_glx], [x11=no]) + + AM_CONDITIONAL(HAVE_X11, test x$x11 = xyes) + +-- +2.3.6 + diff --git a/recipes-graphics/libepoxy/libepoxy_%.bbappend b/recipes-graphics/libepoxy/libepoxy_%.bbappend new file mode 100644 index 0000000..dd3b67a --- /dev/null +++ b/recipes-graphics/libepoxy/libepoxy_%.bbappend @@ -0,0 +1,7 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" +SRC_URI_append_mx6 = " file://0001-Use-the-EGL-pkgconfig-for-finding-eglplatform.h.patch \ + file://0002-Avoid-name-conflicts-between-pkgconfig-s-EGL_LIBS-an.patch \ + file://0003-select-platforms-based-on-configuration-results.patch \ + file://0004-add-an-option-to-disable-glx-support.patch" + +EXTRA_OECONF_mx6 += " --disable-glx" -- 1.9.1 -- _______________________________________________ meta-freescale mailing list [email protected] https://lists.yoctoproject.org/listinfo/meta-freescale
