From ca38cdc4de1143cf6b7af76e9426ecf31f0922f0 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Wed, 15 Jul 2015 17:21:16 -0300 Subject: Move external layer's specific changes for 'dynamic-layers' subdir The external layer's specific changes are now in the 'dynamic-layers' subdirectory. This approach ease the identification of layer specific recipes and extensions as all those are more visible isolated of the main layer components. Signed-off-by: Otavio Salvador --- .../recipes-browser/chromium/chromium-imx.inc | 49 ++++++++++++++ .../chromium/chromium_40.0.2214.91.bbappend | 12 ++++ ...essor-definitions-for-Vivante-GLES-header.patch | 55 +++++++++++++++ .../efl-layer/recipes-efl/efl/efl_%.bbappend | 3 + .../recipes-benchmark/glmark2/glmark2_%.bbappend | 3 + .../recipes-kernel/asf/asf_git.bb | 33 +++++++++ ...c-Opencv-app-can-t-run-on-imx6sx-with-cam.patch | 46 +++++++++++++ .../recipes-support/opencv/opencv_%.bbappend | 3 + .../qt5/qtbase/Force_egl_visual_ID_33.patch | 23 +++++++ .../qt5-layer/recipes-qt/qt5/qtbase_%.bbappend | 79 ++++++++++++++++++++++ ...h-the-uniform-precision-qualifiers-in-ver.patch | 42 ++++++++++++ .../qt5-layer/recipes-qt/qt5/qtwebkit_%.bbappend | 4 ++ 12 files changed, 352 insertions(+) create mode 100644 dynamic-layers/browser-layer/recipes-browser/chromium/chromium-imx.inc create mode 100644 dynamic-layers/browser-layer/recipes-browser/chromium/chromium_40.0.2214.91.bbappend create mode 100644 dynamic-layers/efl-layer/recipes-efl/efl/efl/0001-Add-preprocessor-definitions-for-Vivante-GLES-header.patch create mode 100644 dynamic-layers/efl-layer/recipes-efl/efl/efl_%.bbappend create mode 100644 dynamic-layers/openembedded-layer/recipes-benchmark/glmark2/glmark2_%.bbappend create mode 100644 dynamic-layers/openembedded-layer/recipes-kernel/asf/asf_git.bb create mode 100644 dynamic-layers/openembedded-layer/recipes-support/opencv/opencv/0001-MGS-515-ccc-Opencv-app-can-t-run-on-imx6sx-with-cam.patch create mode 100644 dynamic-layers/openembedded-layer/recipes-support/opencv/opencv_%.bbappend create mode 100644 dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/Force_egl_visual_ID_33.patch create mode 100644 dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend create mode 100644 dynamic-layers/qt5-layer/recipes-qt/qt5/qtwebkit/0001-Fix-to-match-the-uniform-precision-qualifiers-in-ver.patch create mode 100644 dynamic-layers/qt5-layer/recipes-qt/qt5/qtwebkit_%.bbappend (limited to 'dynamic-layers') diff --git a/dynamic-layers/browser-layer/recipes-browser/chromium/chromium-imx.inc b/dynamic-layers/browser-layer/recipes-browser/chromium/chromium-imx.inc new file mode 100644 index 00000000..f63807d5 --- /dev/null +++ b/dynamic-layers/browser-layer/recipes-browser/chromium/chromium-imx.inc @@ -0,0 +1,49 @@ +DEPENDS_append_mx6q = " libfslvpuwrap" +DEPENDS_append_mx6dl = " libfslvpuwrap" + +# Additional imx code and patches are included in the chromium-imx git repository. +# The code below fetches this repository, copies the extra source over to the main +# chromium source directory, and applies the patches. + +CHROMIUM_IMX_BRANCH ?= "master" +CHROMIUM_IMX_SRCREV ?= "HEAD" +CHROMIUM_IMX_DESTSUFFIX ?= "chromium-imx-git" + +PATCH_BASE_DIR = "${WORKDIR}/${CHROMIUM_IMX_DESTSUFFIX}/patches" + +CHROMIUM_IMX_COMMON_PATCHES ?= " " +CHROMIUM_IMX_VPU_PATCHES ?= " " +CHROMIUM_IMX_WAYLAND_PATCHES ?= " " + +SRC_URI += "git://github.com/Freescale/chromium-imx.git;destsuffix=${CHROMIUM_IMX_DESTSUFFIX};branch=${CHROMIUM_IMX_BRANCH};rev=${CHROMIUM_IMX_SRCREV}" + +do_unpack[postfuncs] += "copy_chromium_imx_files" +# using =+ instead of += to make sure add_chromium_imx_patches is +# executed before add_ozone_wayland_patches in the main recipe; +# this is necessary because add_chromium_imx_patches appends +# patches to the OZONE_WAYLAND_EXTRA_PATCHES variable +do_patch[prefuncs] =+ "add_chromium_imx_patches" + +# * Lost context problems are not known to happen with Vivante GPUs, +# so it is safe to use ignore-lost-context +# * EGL is on by default due to the GPU on the i.MX6 +PACKAGECONFIG_append = " use-egl ignore-lost-context" + +copy_chromium_imx_files() { + # sources in src/ are already organized in a manner + # that matches the subdirectories in the chromium + # source directory; just copy over the files in src/ + cp -r ${WORKDIR}/chromium-imx-git/src/* ${S}/ +} + +python add_chromium_imx_patches() { + d.appendVar('SRC_URI', ' ' + d.getVar('CHROMIUM_IMX_COMMON_PATCHES', 1)) + d.appendVar('SRC_URI', ' ' + d.getVar('CHROMIUM_IMX_VPU_PATCHES', 1)) + d.appendVar('OZONE_WAYLAND_EXTRA_PATCHES', ' ' + d.getVar('CHROMIUM_IMX_WAYLAND_PATCHES', 1)) +} + +# Necessary flags to enable support for h.264 and MP4 in Chromium +# (Parsing is done by ffmpeg) +EXTRA_OEGYP += "-Dproprietary_codecs=1 -Dffmpeg_branding=Chrome" + +COMPATIBLE_MACHINE = "(mx6)" diff --git a/dynamic-layers/browser-layer/recipes-browser/chromium/chromium_40.0.2214.91.bbappend b/dynamic-layers/browser-layer/recipes-browser/chromium/chromium_40.0.2214.91.bbappend new file mode 100644 index 00000000..d9c5d154 --- /dev/null +++ b/dynamic-layers/browser-layer/recipes-browser/chromium/chromium_40.0.2214.91.bbappend @@ -0,0 +1,12 @@ +include chromium-imx.inc + +CHROMIUM_IMX_BRANCH = "chromium-40" +CHROMIUM_IMX_SRCREV = "af13a3dbdfdb4b162a9f9692761216e5d6204e57" +CHROMIUM_IMX_COMMON_PATCHES += "file://${PATCH_BASE_DIR}/common/0001-Enable-share-group-workaround-for-Vivante-GPUs.patch" + +VPU_PATCHES = "file://${PATCH_BASE_DIR}/common/0002-Add-VPU-video-decode-accelerator-to-Chromium-GPU-.patch" + +CHROMIUM_IMX_VPU_PATCHES_mx6q += "${VPU_PATCHES}" +CHROMIUM_IMX_VPU_PATCHES_mx6dl += "${VPU_PATCHES}" + +CHROMIUM_IMX_WAYLAND_PATCHES += "file://${PATCH_BASE_DIR}/wayland/0001-Modify-eglwayland-versions-for-Vivante-GPUs.patch" diff --git a/dynamic-layers/efl-layer/recipes-efl/efl/efl/0001-Add-preprocessor-definitions-for-Vivante-GLES-header.patch b/dynamic-layers/efl-layer/recipes-efl/efl/efl/0001-Add-preprocessor-definitions-for-Vivante-GLES-header.patch new file mode 100644 index 00000000..53f0a528 --- /dev/null +++ b/dynamic-layers/efl-layer/recipes-efl/efl/efl/0001-Add-preprocessor-definitions-for-Vivante-GLES-header.patch @@ -0,0 +1,55 @@ +From 0775633e35127e903a1a84d823bf2e7d388d4042 Mon Sep 17 00:00:00 2001 +From: Carlos Rafael Giani +Date: Sun, 1 Jun 2014 01:57:53 +0200 +Subject: [PATCH] Add preprocessor definitions for Vivante GLES headers + +The Vivante headers require the LINUX preprocessor definition, otherwise +compile errors occur + +Upstream-Status: Pending + +Signed-off-by: Carlos Rafael Giani +--- + m4/evas_check_engine.m4 | 4 ++-- + src/Makefile_Evas.am | 2 ++ + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/m4/evas_check_engine.m4 b/m4/evas_check_engine.m4 +index 3fd4890..35d1c5f 100644 +--- a/m4/evas_check_engine.m4 ++++ b/m4/evas_check_engine.m4 +@@ -26,9 +26,9 @@ EFL_FIND_X(evas_engine_[]$1, + [X11 XCreateColormap Xrender XRenderCreatePicture], + [ + CFLAGS_save="$CFLAGS" +- CFLAGS="$evas_engine_[]$1[]_cflags $CFLAGS" ++ CFLAGS="$evas_engine_[]$1[]_cflags $CFLAGS -DLINUX" + CPPFLAGS_save="$CPPFLAGS" +- CPPFLAGS="$evas_engine_[]$1[]_cflags $CPPFLAGS" ++ CPPFLAGS="$evas_engine_[]$1[]_cflags $CPPFLAGS -DLINUX" + + AC_CHECK_HEADER([GL/gl.h], + [have_dep="yes"], +diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am +index 644391b..6232f78 100644 +--- a/src/Makefile_Evas.am ++++ b/src/Makefile_Evas.am +@@ -632,6 +632,7 @@ lib_evas_libevas_la_LIBADD += @evas_engine_gl_common_libs@ + else + noinst_LTLIBRARIES += modules/evas/engines/gl_common/libevas_engine_gl_common.la + modules_evas_engines_gl_common_libevas_engine_gl_common_la_SOURCES = $(GL_COMMON_SOURCES) ++modules_evas_engines_gl_common_libevas_engine_gl_common_la_CFLAGS = -DLINUX + modules_evas_engines_gl_common_libevas_engine_gl_common_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ + -I$(top_srcdir)/src/lib/evas/include \ + -I$(top_srcdir)/src/lib/evas/cserve2 \ +@@ -736,6 +737,7 @@ else + engineglx11pkgdir = $(libdir)/evas/modules/engines/gl_x11/$(MODULE_ARCH) + engineglx11pkg_LTLIBRARIES = modules/evas/engines/gl_x11/module.la + modules_evas_engines_gl_x11_module_la_SOURCES = $(GL_X11_SOURCES) ++modules_evas_engines_gl_x11_module_la_CFLAGS = -DLINUX + modules_evas_engines_gl_x11_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ + -I$(top_srcdir)/src/lib/evas/include \ + -I$(top_srcdir)/src/lib/evas/cserve2 \ +-- +1.8.3.2 + diff --git a/dynamic-layers/efl-layer/recipes-efl/efl/efl_%.bbappend b/dynamic-layers/efl-layer/recipes-efl/efl/efl_%.bbappend new file mode 100644 index 00000000..72ef7980 --- /dev/null +++ b/dynamic-layers/efl-layer/recipes-efl/efl/efl_%.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI_append_mx6 = " file://0001-Add-preprocessor-definitions-for-Vivante-GLES-header.patch" diff --git a/dynamic-layers/openembedded-layer/recipes-benchmark/glmark2/glmark2_%.bbappend b/dynamic-layers/openembedded-layer/recipes-benchmark/glmark2/glmark2_%.bbappend new file mode 100644 index 00000000..8e57d663 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-benchmark/glmark2/glmark2_%.bbappend @@ -0,0 +1,3 @@ +#Remove gles2 as it is not supported by sololite + +PACKAGECONFIG_remove_mx6sl = "gles2" diff --git a/dynamic-layers/openembedded-layer/recipes-kernel/asf/asf_git.bb b/dynamic-layers/openembedded-layer/recipes-kernel/asf/asf_git.bb new file mode 100644 index 00000000..7cf8f57a --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-kernel/asf/asf_git.bb @@ -0,0 +1,33 @@ +DESCRIPTION = "Non-DPAA software Application Specific Fast-path" +SECTION = "asf" +LICENSE = "GPLv2 & GPLv2+ & BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=b5881ecf398da8a03a3f4c501e29d287" + +SRC_URI = "git://git.freescale.com/ppc/sdk/asf.git;branch=master" +SRCREV = "62ba10ab6bab8f8f53934e4bb55b5a552bf3fd6b" + +inherit module + +S = "${WORKDIR}/git/asfmodule" + +EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}" +export KERNEL_PATH = "${STAGING_KERNEL_DIR}" + +INHIBIT_PACKAGE_STRIP = "1" + +do_configure[depends] += "virtual/kernel:do_shared_workdir" +do_configure_prepend () { + find ${S} -name Makefile -exec \ + sed -i 's,$(KERNEL_PATH)/.config,$(KBUILD_OUTPUT)/.config,' {} \; +} + +do_install(){ + mkdir -p ${D}/${libexecdir} + mkdir -p ${D}/lib/modules/${KERNEL_VERSION}/asf + cp -rf ${S}/bin/full ${D}/lib/modules/${KERNEL_VERSION}/asf + cp -rf ${S}/bin/min ${D}/lib/modules/${KERNEL_VERSION}/asf + cp -rf ${S}/../scripts ${D}/${libexecdir}/ +} + +FILES_${PN} += "${libexecdir} /lib/modules/${KERNEL_VERSION}/asf" +RDEPENDS_${PN} += "ipsec-tools" diff --git a/dynamic-layers/openembedded-layer/recipes-support/opencv/opencv/0001-MGS-515-ccc-Opencv-app-can-t-run-on-imx6sx-with-cam.patch b/dynamic-layers/openembedded-layer/recipes-support/opencv/opencv/0001-MGS-515-ccc-Opencv-app-can-t-run-on-imx6sx-with-cam.patch new file mode 100644 index 00000000..274fbe74 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-support/opencv/opencv/0001-MGS-515-ccc-Opencv-app-can-t-run-on-imx6sx-with-cam.patch @@ -0,0 +1,46 @@ +From 90f869763026e8ff18aeecde217d778f00e4f294 Mon Sep 17 00:00:00 2001 +From: Shawn Xiao +Date: Tue, 10 Feb 2015 16:11:59 +0800 +Subject: [PATCH] MGS-515 [#ccc] Opencv app can't run on imx6sx with cam + +This issue is caused by the no support of VIDIOC_QUERYCTRL ioctl +item in latest cam driver. + +Modified the errno in check logic to compatible with new driver. + +Feb 10, 2015 + +Upstream-Status: Pending + +Signed-off-by: Shawn Xiao +--- + modules/highgui/src/cap_v4l.cpp | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/modules/highgui/src/cap_v4l.cpp b/modules/highgui/src/cap_v4l.cpp +index c9fca05..8c46b6c 100644 +--- a/modules/highgui/src/cap_v4l.cpp ++++ b/modules/highgui/src/cap_v4l.cpp +@@ -707,7 +707,8 @@ static void v4l2_scan_controls(CvCaptureCAM_V4L* capture) + + } else { + +- if (errno == EINVAL) ++ if (errno == ENOTTY || ++ errno == EINVAL) + continue; + + perror ("VIDIOC_QUERYCTRL"); +@@ -774,7 +775,8 @@ static void v4l2_scan_controls(CvCaptureCAM_V4L* capture) + + } else { + +- if (errno == EINVAL) ++ if (errno == ENOTTY || ++ errno == EINVAL) + break; + + perror ("VIDIOC_QUERYCTRL"); +-- +2.3.0 + diff --git a/dynamic-layers/openembedded-layer/recipes-support/opencv/opencv_%.bbappend b/dynamic-layers/openembedded-layer/recipes-support/opencv/opencv_%.bbappend new file mode 100644 index 00000000..be166965 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-support/opencv/opencv_%.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI_append_mx6sx = " file://0001-MGS-515-ccc-Opencv-app-can-t-run-on-imx6sx-with-cam.patch" diff --git a/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/Force_egl_visual_ID_33.patch b/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/Force_egl_visual_ID_33.patch new file mode 100644 index 00000000..b0be292d --- /dev/null +++ b/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/Force_egl_visual_ID_33.patch @@ -0,0 +1,23 @@ +Workaround EGL initialization failure due visual mismatch + +Error: + +Warning: EGL suggested using X Visual ID 33 (RGB888) for EGL config 28 (RGB444), but this is incompatable +Unable to find an X11 visual which matches EGL config 28 +Could not initialize EGL +Aborted + +Upstream-Status: Inappropriate [workaround] + +Signed-off-by: Otavio Salvador + +diff -Naur qtbase-opensource-src-5.1.1_original/src/platformsupport/eglconvenience/qxlibeglintegration.cpp qtbase-opensource-src-5.1.1/src/platformsupport/eglconvenience/qxlibeglintegration.cpp +--- qtbase-opensource-src-5.1.1_original/src/platformsupport/eglconvenience/qxlibeglintegration.cpp 2013-12-25 19:08:42.163895341 -0800 ++++ qtbase-opensource-src-5.1.1/src/platformsupport/eglconvenience/qxlibeglintegration.cpp 2013-12-25 19:09:37.207893799 -0800 +@@ -180,5 +180,5 @@ + } + + qWarning("Unable to find an X11 visual which matches EGL config %d", configId); +- return (VisualID)0; ++ return (VisualID)33; + } diff --git a/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend b/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend new file mode 100644 index 00000000..a376a838 --- /dev/null +++ b/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend @@ -0,0 +1,79 @@ +# Copyright (C) 2013 Eric Bénard - Eukréa Electromatique + +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI += "file://Force_egl_visual_ID_33.patch" + +HAS_X11 = "${@base_contains('DISTRO_FEATURES', 'x11', 1, 0, d)}" + +IS_MX6SL = "0" +IS_MX6SL_mx6sl = "1" + +PACKAGECONFIG_GL_mx5 = "gles2" +QT_CONFIG_FLAGS_append_mx5 = "${@base_contains('DISTRO_FEATURES', 'x11', ' -no-eglfs', ' -eglfs', d)}" + +PACKAGECONFIG_GL_mx6q = "gles2" +PACKAGECONFIG_GL_mx6dl = "gles2" +PACKAGECONFIG_GL_mx6sx = "gles2" +PACKAGECONFIG_GL_mx6sl = "${@base_contains('DISTRO_FEATURES', 'x11', \ + ' gl', '', d)}" +QT_CONFIG_FLAGS_append_mx6q = "${@base_contains('DISTRO_FEATURES', 'x11', ' -no-eglfs', ' -eglfs', d)}" +QT_CONFIG_FLAGS_append_mx6dl = "${@base_contains('DISTRO_FEATURES', 'x11', ' -no-eglfs', ' -eglfs', d)}" +QT_CONFIG_FLAGS_append_mx6sx = "${@base_contains('DISTRO_FEATURES', 'x11', ' -no-eglfs', ' -eglfs', d)}" +QT_CONFIG_FLAGS_append_mx6sl = "${@base_contains('DISTRO_FEATURES', 'x11', \ + ' -no-eglfs', ' -no-opengl -linuxfb -no-eglfs', d)}" + +do_configure_prepend_mx5() { + sed -i 's!load(qt_config)!!' ${S}/mkspecs/linux-oe-g++/qmake.conf + + cat >> ${S}/mkspecs/linux-oe-g++/qmake.conf <> ${S}/mkspecs/linux-oe-g++/qmake.conf <> ${S}/mkspecs/linux-oe-g++/qmake.conf <> ${S}/mkspecs/linux-oe-g++/qmake.conf <> ${S}/mkspecs/linux-oe-g++/qmake.conf < +Date: Thu, 8 May 2014 09:27:04 -0700 +Subject: [PATCH] Fix to match the uniform precision qualifiers in vertex and + fragment shaders + +When the vertex and fragment shaders are linked together, then they will +share a single global uniform name space. Hence, types and precisions of +uniforms with the same name must match across all shaders that are linked +into a single executable. + +As per GLSL_ES_Specification_3.00.3.pdf +Page 124 12.3 Numeric Precision +The fragment language has no default precision qualifier for floating point types. +Hence for float, floating point vector and matrix variable declarations, either +the declaration must include a precision qualifier or the default float +precision must have been previously declared. + +Upstream-Status: Submitted [https://bugs.webkit.org/show_bug.cgi?id=124653#c9] + +Change-Id: I4eb3363b3bca8bc3c839212ec7c966201a3e65e2 +Signed-off-by: Prabhu Sundararaj +--- + Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp b/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp +index f4b9a7e..7e991bf 100644 +--- a/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp ++++ b/Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp +@@ -208,7 +208,7 @@ static const char* fragmentTemplate = + ANTIALIASING_TEX_COORD_DIRECTIVE + BLUR_CONSTANTS + STRINGIFY( +- precision mediump float; ++ precision highp float; + uniform SamplerType s_sampler; + uniform sampler2D s_contentTexture; + uniform float u_opacity; +-- +1.9.1 + diff --git a/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwebkit_%.bbappend b/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwebkit_%.bbappend new file mode 100644 index 00000000..5d961e64 --- /dev/null +++ b/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwebkit_%.bbappend @@ -0,0 +1,4 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI += "file://0001-Fix-to-match-the-uniform-precision-qualifiers-in-ver.patch" + -- cgit v1.2.3-54-g00ecf