diff options
Diffstat (limited to 'meta-ivi-bsp/recipes-graphics')
4 files changed, 271 insertions, 0 deletions
diff --git a/meta-ivi-bsp/recipes-graphics/mesa/mesa/README.gallium b/meta-ivi-bsp/recipes-graphics/mesa/mesa/README.gallium new file mode 100644 index 0000000..6bc7787 --- /dev/null +++ b/meta-ivi-bsp/recipes-graphics/mesa/mesa/README.gallium @@ -0,0 +1,66 @@ +these files + revert-363b53f00069af718f64cf047f19ad5681a8bf6d.patch + revert-c46c551c56f78c6bf9e63524c89478695fc4f525.patch +are the reverts of following commit of mesa: + 363b53f00069af718f64cf047f19ad5681a8bf6d + c46c551c56f78c6bf9e63524c89478695fc4f525 + +the reason of two patches is described at + http://lists.freedesktop.org/archives/mesa-dev/2014-November/070204.html + + +[Mesa-dev] [PATCH 0/2] Disable the EGL state tracker for Linux/DRI builds + +Marek Olšák maraeo at gmail.com +Tue Nov 4 14:42:43 PST 2014 + +Hi everybody, + +I'm about to address this long-standing issue: The EGL state tracker is +redundant. It duplicates what st/dri does and it also duplicates what +the common loader egl_dri2 does, which is used by all classic drivers +and even works better with gallium drivers. + +Let's compare EGL extensions for both backends: + +st/egl: +EGL version string: 1.4 (Gallium) +EGL client APIs: OpenGL OpenGL_ES OpenGL_ES2 OpenVG +EGL extensions string: + EGL_WL_bind_wayland_display EGL_KHR_image_base EGL_KHR_image_pixmap + EGL_KHR_image EGL_KHR_reusable_sync EGL_KHR_fence_sync + EGL_KHR_surfaceless_context EGL_NOK_swap_region + EGL_NV_post_sub_buffer + +egl_dri2: +EGL version string: 1.4 (DRI2) +EGL client APIs: OpenGL OpenGL_ES OpenGL_ES2 OpenGL_ES3 +EGL extensions string: + EGL_MESA_drm_image EGL_MESA_configless_context EGL_KHR_image_base + EGL_KHR_image_pixmap EGL_KHR_image EGL_KHR_gl_texture_2D_image + EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image + EGL_KHR_surfaceless_context EGL_KHR_create_context + EGL_NOK_swap_region EGL_NOK_texture_from_pixmap + EGL_CHROMIUM_sync_control EGL_EXT_image_dma_buf_import + EGL_NV_post_sub_buffer + +egl_dri2 also supports MSAA on the window framebuffer (through st/dri). +It's really obvious which one is better. + +I'm aware of 2 features that we will lose: +- swrast on Wayland - I'm not sure about this. Perhaps kms-swrast has +addressed this already. +- OpenVG - It has never taken off. If people want this on Linux, it should +use egl_dri2 and st/dri, like OpenGL does. + +This series removes st/egl and st/gbm support from the autoconf build +(the latter depends on the former and is probably just as redundant). +The next step is to remove all Linux-specific backends from st/egl. +Windows, Android, and other platform backends will be kept intact, +therefore st/egl won't be removed completely. + +Please comment. + +Thanks, + +Marek diff --git a/meta-ivi-bsp/recipes-graphics/mesa/mesa/revert-363b53f00069af718f64cf047f19ad5681a8bf6d.patch b/meta-ivi-bsp/recipes-graphics/mesa/mesa/revert-363b53f00069af718f64cf047f19ad5681a8bf6d.patch new file mode 100644 index 0000000..3c91cc5 --- /dev/null +++ b/meta-ivi-bsp/recipes-graphics/mesa/mesa/revert-363b53f00069af718f64cf047f19ad5681a8bf6d.patch @@ -0,0 +1,31 @@ +diff -urN Mesa-10.4.4.orig/src/egl/main/egldriver.c Mesa-10.4.4/src/egl/main/egldriver.c +--- Mesa-10.4.4.orig/src/egl/main/egldriver.c 2015-02-07 09:09:51.000000000 +0900 ++++ Mesa-10.4.4/src/egl/main/egldriver.c 2015-09-26 11:36:43.938445294 +0900 +@@ -518,6 +518,19 @@ + + + /** ++ * Add egl_gallium to the module array. ++ */ ++static void ++_eglAddGalliumDriver(void) ++{ ++#ifndef _EGL_BUILT_IN_DRIVER_GALLIUM ++ void *external = (void *) "egl_gallium"; ++ _eglPreloadForEach(_eglGetSearchPath(), _eglLoaderFile, external); ++#endif ++} ++ ++ ++/** + * Add built-in drivers to the module array. + */ + static void +@@ -549,6 +562,7 @@ + * Add other drivers only when EGL_DRIVER is not set. The order here + * decides the priorities. + */ ++ _eglAddGalliumDriver(); + _eglAddBuiltInDrivers(); + } + diff --git a/meta-ivi-bsp/recipes-graphics/mesa/mesa/revert-c46c551c56f78c6bf9e63524c89478695fc4f525.patch b/meta-ivi-bsp/recipes-graphics/mesa/mesa/revert-c46c551c56f78c6bf9e63524c89478695fc4f525.patch new file mode 100644 index 0000000..b417249 --- /dev/null +++ b/meta-ivi-bsp/recipes-graphics/mesa/mesa/revert-c46c551c56f78c6bf9e63524c89478695fc4f525.patch @@ -0,0 +1,147 @@ +diff -urN Mesa-10.4.4.orig/configure.ac Mesa-10.4.4/configure.ac +--- Mesa-10.4.4.orig/configure.ac 2015-09-26 10:15:23.382322385 +0900 ++++ Mesa-10.4.4/configure.ac 2015-09-26 10:15:49.578323045 +0900 +@@ -720,6 +720,20 @@ + [make GLX library Xlib-based instead of DRI-based @<:@default=disabled@:>@])], + [enable_xlib_glx="$enableval"], + [enable_xlib_glx=no]) ++AC_ARG_ENABLE([gallium-egl], ++ [AS_HELP_STRING([--enable-gallium-egl], ++ [enable optional EGL state tracker (not required ++ for EGL support in Gallium with OpenGL and OpenGL ES) ++ @<:@default=disabled@:>@])], ++ [enable_gallium_egl="$enableval"], ++ [enable_gallium_egl=no]) ++AC_ARG_ENABLE([gallium-gbm], ++ [AS_HELP_STRING([--enable-gallium-gbm], ++ [enable optional gbm state tracker (not required for ++ gbm support in Gallium) ++ @<:@default=auto@:>@])], ++ [enable_gallium_gbm="$enableval"], ++ [enable_gallium_gbm=auto]) + + AC_ARG_ENABLE([r600-llvm-compiler], + [AS_HELP_STRING([--enable-r600-llvm-compiler], +@@ -1324,6 +1338,51 @@ + AC_SUBST([EGL_LIB_DEPS]) + + dnl ++dnl EGL Gallium configuration ++dnl ++if test "x$enable_gallium_egl" = xyes; then ++ if test -z "$with_gallium_drivers"; then ++ AC_MSG_ERROR([cannot enable egl_gallium without Gallium]) ++ fi ++ if test "x$enable_egl" = xno; then ++ AC_MSG_ERROR([cannot enable egl_gallium without EGL]) ++ fi ++ if test "x$have_libdrm" != xyes; then ++ AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED]) ++ fi ++# XXX: Uncomment once converted to use static/shared pipe-drivers ++# enable_gallium_loader=$enable_shared_pipe_drivers ++fi ++AM_CONDITIONAL(HAVE_GALLIUM_EGL, test "x$enable_gallium_egl" = xyes) ++ ++dnl ++dnl gbm Gallium configuration ++dnl ++if test "x$enable_gallium_gbm" = xauto; then ++ case "$enable_gbm$enable_gallium_egl$enable_dri$with_egl_platforms" in ++ yesyesyes*drm*) ++ enable_gallium_gbm=yes ;; ++ *) ++ enable_gallium_gbm=no ;; ++ esac ++fi ++if test "x$enable_gallium_gbm" = xyes; then ++ if test -z "$with_gallium_drivers"; then ++ AC_MSG_ERROR([cannot enable gbm_gallium without Gallium]) ++ fi ++ if test "x$enable_gbm" = xno; then ++ AC_MSG_ERROR([cannot enable gbm_gallium without gbm]) ++ fi ++ ++ if test "x$enable_gallium_egl" != xyes; then ++ AC_MSG_ERROR([gbm_gallium is only used by egl_gallium]) ++ fi ++ ++ enable_gallium_loader=$enable_shared_pipe_drivers ++fi ++AM_CONDITIONAL(HAVE_GALLIUM_GBM, test "x$enable_gallium_gbm" = xyes) ++ ++dnl + dnl XA configuration + dnl + if test "x$enable_xa" = xyes; then +@@ -1351,9 +1410,9 @@ + if test -z "$with_gallium_drivers"; then + AC_MSG_ERROR([cannot enable OpenVG without Gallium]) + fi +- +- AC_MSG_ERROR([Cannot enable OpenVG, because egl_gallium has been removed and +- OpenVG hasn't been integrated into standard libEGL yet]) ++ if test "x$enable_gallium_egl" = xno; then ++ AC_MSG_ERROR([cannot enable OpenVG without egl_gallium]) ++ fi + + EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)' + VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS $PTHREAD_LIBS" +@@ -2165,6 +2224,8 @@ + src/gallium/drivers/vc4/kernel/Makefile + src/gallium/state_trackers/clover/Makefile + src/gallium/state_trackers/dri/Makefile ++ src/gallium/state_trackers/egl/Makefile ++ src/gallium/state_trackers/gbm/Makefile + src/gallium/state_trackers/glx/xlib/Makefile + src/gallium/state_trackers/nine/Makefile + src/gallium/state_trackers/omx/Makefile +@@ -2303,7 +2364,12 @@ + egl_drivers="$egl_drivers builtin:egl_dri2" + fi + +- echo " EGL drivers: $egl_drivers" ++ if test "x$enable_gallium_egl" = xyes; then ++ echo " EGL drivers: ${egl_drivers} egl_gallium" ++ echo " EGL Gallium STs:$EGL_CLIENT_APIS" ++ else ++ echo " EGL drivers: $egl_drivers" ++ fi + fi + + echo "" +diff -urN Mesa-10.4.4.orig/docs/egl.html Mesa-10.4.4/docs/egl.html +--- Mesa-10.4.4.orig/docs/egl.html 2015-09-26 10:15:23.386322385 +0900 ++++ Mesa-10.4.4/docs/egl.html 2015-09-26 10:15:49.578323045 +0900 +@@ -77,6 +77,13 @@ + + </dd> + ++<dt><code>--enable-gallium-egl</code></dt> ++<dd> ++ ++<p>Enable the optional <code>egl_gallium</code> driver.</p> ++ ++</dd> ++ + <dt><code>--with-egl-platforms</code></dt> + <dd> + +diff -urN Mesa-10.4.4.orig/src/gallium/Makefile.am Mesa-10.4.4/src/gallium/Makefile.am +--- Mesa-10.4.4.orig/src/gallium/Makefile.am 2015-09-26 10:15:23.386322385 +0900 ++++ Mesa-10.4.4/src/gallium/Makefile.am 2015-09-26 10:15:49.578323045 +0900 +@@ -138,6 +138,14 @@ + SUBDIRS += state_trackers/vega + endif + ++if HAVE_GALLIUM_EGL ++SUBDIRS += state_trackers/egl targets/egl-static ++endif ++ ++if HAVE_GALLIUM_GBM ++SUBDIRS += state_trackers/gbm targets/gbm ++endif ++ + if HAVE_X11_DRIVER + SUBDIRS += state_trackers/glx/xlib targets/libgl-xlib + endif diff --git a/meta-ivi-bsp/recipes-graphics/mesa/mesa_10.%.bbappend b/meta-ivi-bsp/recipes-graphics/mesa/mesa_10.%.bbappend new file mode 100644 index 0000000..72c2b6f --- /dev/null +++ b/meta-ivi-bsp/recipes-graphics/mesa/mesa_10.%.bbappend @@ -0,0 +1,27 @@ +PR = "r1" + +# +# please, read mesa/READM.gallium about an issue when using gallium +# +PACKAGES =+ " \ + libegl-gallium libgbm-gallium \ + " + +FILESEXTRAPATHS_append := "${THISDIR}/${PN}" +SRC_URI_append = " \ + file://revert-c46c551c56f78c6bf9e63524c89478695fc4f525.patch \ + " +SRC_URI_append_qemux86 = " \ + file://revert-363b53f00069af718f64cf047f19ad5681a8bf6d.patch \ + " +SRC_URI_append_qemux86-64 = " \ + file://revert-363b53f00069af718f64cf047f19ad5681a8bf6d.patch \ + " + +PACKAGECONFIG[gallium-egl] = "--enable-gallium-egl, --disable-gallium-egl" + +FILES_libegl-gallium = "${libdir}/egl/egl_gallium.so*" +FILES_libgbm-gallium = "${libdir}/gbm/gbm_gallium_drm.so*" + +PACKAGECONFIG_append_qemux86 = " gallium gallium-egl gallium-llvm" +PACKAGECONFIG_append_qemux86-64 = " gallium gallium-egl gallium-llvm" |