summaryrefslogtreecommitdiffstats
path: root/meta-xilinx-mali400/dynamic-layers/qt5-layer
diff options
context:
space:
mode:
Diffstat (limited to 'meta-xilinx-mali400/dynamic-layers/qt5-layer')
-rw-r--r--meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0002-egl_kms-Modify-the-default-color-format-to-RGB565.patch110
-rw-r--r--meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0003-qkmsdevice.cpp-Disable-hw-cursor-as-a-default-option.patch31
-rw-r--r--meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend41
-rw-r--r--meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtmultimedia_%.bbappend7
-rw-r--r--meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland/0001-Fix-regression-in-QWaylandGlContext-makeCurrent-for-.patch34
-rw-r--r--meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland/0001-qwaylandwindow.cpp-Do-not-destroy-shell-suface-befor.patch31
-rw-r--r--meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland/0002-Handle-maximize-minimize-fullscreen-in-xdg_shell_v6.patch20
-rw-r--r--meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland/0003-qwaylandeglwindow.cpp-Bind-the-context-before-callin.patch32
-rw-r--r--meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend21
-rw-r--r--meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwebengine_%.bbappend1
-rw-r--r--meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwebkit_%.bbappend8
11 files changed, 336 insertions, 0 deletions
diff --git a/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0002-egl_kms-Modify-the-default-color-format-to-RGB565.patch b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0002-egl_kms-Modify-the-default-color-format-to-RGB565.patch
new file mode 100644
index 00000000..363edd4d
--- /dev/null
+++ b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0002-egl_kms-Modify-the-default-color-format-to-RGB565.patch
@@ -0,0 +1,110 @@
1From f791102afb7c65601042b697a9d85c4f4fce5dab Mon Sep 17 00:00:00 2001
2From: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
3Date: Tue, 19 Nov 2019 13:45:58 -0800
4Subject: [PATCH] egl_kms: Modify the default color format to RGB565
5
6DP supports RGB565 hence modify the default color format to RGB565.
7
8Signed-off-by: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
9Upstream-Status: Inappropriate [Xilinx specific]
10
11---
12 .../kmsconvenience/qkmsdevice.cpp | 4 ++--
13 .../eglfs_kms/qeglfskmsgbmcursor.cpp | 6 +++---
14 .../eglfs_kms/qeglfskmsgbmintegration.cpp | 2 +-
15 .../eglfs_kms_support/qeglfskmsintegration.cpp | 16 +++++++++++++---
16 4 files changed, 19 insertions(+), 9 deletions(-)
17
18diff --git a/src/platformsupport/kmsconvenience/qkmsdevice.cpp b/src/platformsupport/kmsconvenience/qkmsdevice.cpp
19index 8cd7f9b368..657b3d553e 100644
20--- a/src/platformsupport/kmsconvenience/qkmsdevice.cpp
21+++ b/src/platformsupport/kmsconvenience/qkmsdevice.cpp
22@@ -369,7 +369,7 @@ QPlatformScreen *QKmsDevice::createScreenForConnector(drmModeResPtr resources,
23 uint32_t drmFormat;
24 bool drmFormatExplicit = true;
25 if (formatStr.isEmpty()) {
26- drmFormat = DRM_FORMAT_XRGB8888;
27+ drmFormat = DRM_FORMAT_RGB565;
28 drmFormatExplicit = false;
29 } else if (formatStr == "xrgb8888") {
30 drmFormat = DRM_FORMAT_XRGB8888;
31@@ -393,7 +393,7 @@ QPlatformScreen *QKmsDevice::createScreenForConnector(drmModeResPtr resources,
32 drmFormat = DRM_FORMAT_ABGR2101010;
33 } else {
34 qWarning("Invalid pixel format \"%s\" for output %s", formatStr.constData(), connectorName.constData());
35- drmFormat = DRM_FORMAT_XRGB8888;
36+ drmFormat = DRM_FORMAT_RGB565;
37 drmFormatExplicit = false;
38 }
39 qCDebug(qLcKmsDebug) << "Format is" << Qt::hex << drmFormat << Qt::dec << "requested_by_user =" << drmFormatExplicit
40diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor.cpp
41index 612eec4ce0..39073a42c2 100644
42--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor.cpp
43+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor.cpp
44@@ -87,7 +87,7 @@ QEglFSKmsGbmCursor::QEglFSKmsGbmCursor(QEglFSKmsGbmScreen *screen)
45 }
46
47 m_bo = gbm_bo_create(static_cast<QEglFSKmsGbmDevice *>(m_screen->device())->gbmDevice(), m_cursorSize.width(), m_cursorSize.height(),
48- GBM_FORMAT_ARGB8888, GBM_BO_USE_CURSOR_64X64 | GBM_BO_USE_WRITE);
49+ DRM_FORMAT_RGB565, GBM_BO_USE_CURSOR_64X64 | GBM_BO_USE_WRITE);
50 if (!m_bo) {
51 qWarning("Could not create buffer for cursor!");
52 } else {
53@@ -197,7 +197,7 @@ void QEglFSKmsGbmCursor::changeCursor(QCursor *windowCursor, QWindow *window)
54 if (m_cursorImage.image()->width() > m_cursorSize.width() || m_cursorImage.image()->height() > m_cursorSize.height())
55 qWarning("Cursor larger than %dx%d, cursor will be clipped.", m_cursorSize.width(), m_cursorSize.height());
56
57- QImage cursorImage(m_cursorSize, QImage::Format_ARGB32);
58+ QImage cursorImage(m_cursorSize, QImage::Format_RGB16);
59 cursorImage.fill(Qt::transparent);
60
61 QPainter painter;
62@@ -302,7 +302,7 @@ void QEglFSKmsGbmCursor::initCursorAtlas()
63 m_cursorAtlas.hotSpots << hotSpot;
64 }
65
66- QImage image = QImage(atlas).convertToFormat(QImage::Format_ARGB32);
67+ QImage image = QImage(atlas).convertToFormat(QImage::Format_RGB16);
68 m_cursorAtlas.cursorWidth = image.width() / m_cursorAtlas.cursorsPerRow;
69 m_cursorAtlas.cursorHeight = image.height() / ((Qt::LastCursor + cursorsPerRow) / cursorsPerRow);
70 m_cursorAtlas.width = image.width();
71diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
72index caa1187b40..b8f129212c 100644
73--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
74+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmintegration.cpp
75@@ -96,7 +96,7 @@ EGLNativeWindowType QEglFSKmsGbmIntegration::createNativeOffscreenWindow(const Q
76
77 gbm_surface *surface = gbm_surface_create(static_cast<QEglFSKmsGbmDevice *>(device())->gbmDevice(),
78 1, 1,
79- GBM_FORMAT_XRGB8888,
80+ DRM_FORMAT_RGB565,
81 GBM_BO_USE_RENDERING);
82
83 return reinterpret_cast<EGLNativeWindowType>(surface);
84diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration.cpp
85index 28b6b7df63..91dd092311 100644
86--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration.cpp
87+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration.cpp
88@@ -102,9 +102,19 @@ QSurfaceFormat QEglFSKmsIntegration::surfaceFormatFor(const QSurfaceFormat &inpu
89 QSurfaceFormat format(inputFormat);
90 format.setRenderableType(QSurfaceFormat::OpenGLES);
91 format.setSwapBehavior(QSurfaceFormat::DoubleBuffer);
92- format.setRedBufferSize(8);
93- format.setGreenBufferSize(8);
94- format.setBlueBufferSize(8);
95+
96+ static const bool force888 = qEnvironmentVariableIntValue("QT_QPA_EGLFS_FORCE888");
97+ if (force888){
98+ format.setRedBufferSize(8);
99+ format.setGreenBufferSize(8);
100+ format.setBlueBufferSize(8);
101+ }
102+ else{
103+ format.setRedBufferSize(5);
104+ format.setGreenBufferSize(6);
105+ format.setBlueBufferSize(5);
106+ }
107+
108 return format;
109 }
110
diff --git a/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0003-qkmsdevice.cpp-Disable-hw-cursor-as-a-default-option.patch b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0003-qkmsdevice.cpp-Disable-hw-cursor-as-a-default-option.patch
new file mode 100644
index 00000000..8a357d3d
--- /dev/null
+++ b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase/0003-qkmsdevice.cpp-Disable-hw-cursor-as-a-default-option.patch
@@ -0,0 +1,31 @@
1From b8bdd78fc2836f7ecb8777c3bd99fc2d48dfeda4 Mon Sep 17 00:00:00 2001
2From: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
3Date: Fri, 8 Mar 2019 16:23:29 -0800
4Subject: [PATCH] qkmsdevice.cpp: Disable hw cursor as a default option.
5
6Zynqmp does not support hardware cursor, hence disable it as a default
7choice and enable pbuffer.
8
9Signed-off-by: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
10Upstream-Status: Inappropriate [Xilinx specific]
11
12---
13 src/platformsupport/kmsconvenience/qkmsdevice.cpp | 4 ++--
14 1 file changed, 2 insertions(+), 2 deletions(-)
15
16diff --git a/src/platformsupport/kmsconvenience/qkmsdevice.cpp b/src/platformsupport/kmsconvenience/qkmsdevice.cpp
17index 657b3d553e..64aafb2247 100644
18--- a/src/platformsupport/kmsconvenience/qkmsdevice.cpp
19+++ b/src/platformsupport/kmsconvenience/qkmsdevice.cpp
20@@ -1028,9 +1028,9 @@ QKmsScreenConfig *QKmsDevice::screenConfig() const
21
22 QKmsScreenConfig::QKmsScreenConfig()
23 : m_headless(false)
24- , m_hwCursor(true)
25+ , m_hwCursor(false)
26 , m_separateScreens(false)
27- , m_pbuffers(false)
28+ , m_pbuffers(true)
29 , m_virtualDesktopLayout(VirtualDesktopLayoutHorizontal)
30 {
31 loadConfig();
diff --git a/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend
new file mode 100644
index 00000000..2e80a4c8
--- /dev/null
+++ b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend
@@ -0,0 +1,41 @@
1FILESEXTRAPATHS:prepend := "${THISDIR}/qtbase:"
2
3SRC_URI:append = " \
4 file://0002-egl_kms-Modify-the-default-color-format-to-RGB565.patch \
5 file://0003-qkmsdevice.cpp-Disable-hw-cursor-as-a-default-option.patch \
6"
7
8PACKAGECONFIG:append = " \
9 examples accessibility tools libinput fontconfig \
10 ${@bb.utils.contains('DISTRO_FEATURES', 'fbdev', 'linuxfb gles2 eglfs', '', d)} \
11 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gles2 eglfs', '', d)} \
12 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'gles2 eglfs kms gbm', '', d)} \
13 "
14
15PACKAGECONFIG:remove = "tests"
16
17# Links to libmali-xlnx, so it becomes MACHINE_ARCH specific
18DEFAULT_PACKAGE_ARCH := "${PACKAGE_ARCH}"
19MALI_PACKAGE_ARCH[vardepsexclude] = "MACHINE_ARCH"
20MALI_PACKAGE_ARCH = "${@'${MACHINE_ARCH}' if d.getVar('PREFERRED_PROVIDER_virtual/libgles1') == 'libmali-xlnx' else '${DEFAULT_PACKAGE_ARCH}'}"
21PACKAGE_ARCH[vardepsexclude] = "MALI_PACKAGE_ARCH"
22PACKAGE_ARCH = "${@bb.utils.contains_any('DEPENDS', 'virtual/libgles1 virtual/libgles2 virtual/egl virtual/libgbm', '${MALI_PACKAGE_ARCH}', '${DEFAULT_PACKAGE_ARCH}', d)}"
23
24# There is some sort of parallel make install failure
25# Makefile:144: recipe for target 'sub-dbus-install_subtargets' failed
26# make[1]: *** [sub-dbus-install_subtargets] Error 2
27PARALLEL_MAKEINST = "-j 1"
28
29EXTRA_OEMAKE:task-install = " \
30 MAKEFLAGS='${PARALLEL_MAKEINST}' \
31 OE_QMAKE_CC='${OE_QMAKE_CC}' \
32 OE_QMAKE_CXX='${OE_QMAKE_CXX}' \
33 OE_QMAKE_CFLAGS='${OE_QMAKE_CFLAGS}' \
34 OE_QMAKE_CXXFLAGS='${OE_QMAKE_CXXFLAGS}' \
35 OE_QMAKE_LINK='${OE_QMAKE_LINK}' \
36 OE_QMAKE_LDFLAGS='${OE_QMAKE_LDFLAGS}' \
37 OE_QMAKE_AR='${OE_QMAKE_AR}' \
38 OE_QMAKE_OBJCOPY='${OE_QMAKE_OBJCOPY}' \
39 OE_QMAKE_STRIP='${OE_QMAKE_STRIP}' \
40 OE_QMAKE_INCDIR_QT='${STAGING_DIR_TARGET}/${OE_QMAKE_PATH_HEADERS}' \
41"
diff --git a/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtmultimedia_%.bbappend b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtmultimedia_%.bbappend
new file mode 100644
index 00000000..1e329fbd
--- /dev/null
+++ b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtmultimedia_%.bbappend
@@ -0,0 +1,7 @@
1# Links to libmali-xlnx, so it becomes MACHINE_ARCH specific
2DEFAULT_PACKAGE_ARCH := "${PACKAGE_ARCH}"
3MALI_PACKAGE_ARCH[vardepsexclude] = "MACHINE_ARCH"
4MALI_PACKAGE_ARCH = "${@'${MACHINE_ARCH}' if d.getVar('PREFERRED_PROVIDER_virtual/libgles1') == 'libmali-xlnx' else '${DEFAULT_PACKAGE_ARCH}'}"
5PACKAGE_ARCH[vardepsexclude] = "MALI_PACKAGE_ARCH"
6PACKAGE_ARCH = "${@bb.utils.contains_any('DEPENDS', 'gstreamer1.0-plugins-base', '${MALI_PACKAGE_ARCH}', '${DEFAULT_PACKAGE_ARCH}', d)}"
7# Note: gstreamer1.0-plugins-base has a dependency on opengl, which infects directly linking to it
diff --git a/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland/0001-Fix-regression-in-QWaylandGlContext-makeCurrent-for-.patch b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland/0001-Fix-regression-in-QWaylandGlContext-makeCurrent-for-.patch
new file mode 100644
index 00000000..09ad1b5b
--- /dev/null
+++ b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland/0001-Fix-regression-in-QWaylandGlContext-makeCurrent-for-.patch
@@ -0,0 +1,34 @@
1From eb44571eab0036a9a1bcd7c423f0187abcbf7a37 Mon Sep 17 00:00:00 2001
2From: Johan Klokkhammer Helsing <johan.helsing@qt.io>
3Date: Thu, 30 Aug 2018 09:31:33 +0200
4Subject: [PATCH] Fix regression in QWaylandGlContext::makeCurrent for
5 offscreen surfaces
6
7[ChangeLog][QPA plugin] Fixed a bug where offscreen surfaces would get
8surfaceless EGL contexts.
9
10Fixes a regression in in bf09c7a1.
11
12The call, window->updateSurface(window->isExposed()), is problematic because
13offscreen textures are never exposed, and consequently, eglSurface will be
14EGL_NO_SURFACE, which will then create a surfaceless context in the call:
15
16 eglMakeCurrent(m_eglDisplay, eglSurface, eglSurface, m_context)
17
18This reverts to the old behavior of always trying to create an EGL surface,
19unless the window doesn't have a valid wl_surface, in which case it doesn't
20make sense (which is what bf09c7a1 fixed, QTBUG-65553).
21
22Task-number: QTBUG-70242
23Task-number: QTBUG-68605
24Task-number: QTBUG-67601
25Change-Id: I44b07bb8bf4b33c73c6379a1de8e9e5cfd220b51
26
27Signed-off-by: Johan Helsing <johan.helsing@qt.io>
28Signed-off-by: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
29Upstream-Status: Backport
30---
31 src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp | 9 ++++++---
32 src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp | 2 +-
33 2 files changed, 7 insertions(+), 4 deletions(-)
34
diff --git a/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland/0001-qwaylandwindow.cpp-Do-not-destroy-shell-suface-befor.patch b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland/0001-qwaylandwindow.cpp-Do-not-destroy-shell-suface-befor.patch
new file mode 100644
index 00000000..8f81ffcf
--- /dev/null
+++ b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland/0001-qwaylandwindow.cpp-Do-not-destroy-shell-suface-befor.patch
@@ -0,0 +1,31 @@
1From 30f5d53244ef4173544413124f319af272235cfd Mon Sep 17 00:00:00 2001
2From: Madhurkiran Harikrishnan <madhurki@xilinx.com>
3Date: Wed, 16 May 2018 17:16:53 -0700
4Subject: [PATCH 1/3] qwaylandwindow.cpp: Do not destroy shell suface before
5 eglDestroySurface
6
7The call to reset results in a race condition resulting in destruction
8of shell surface before the eglSurface thereby crashing libwayland-client.
9
10Signed-off-by: Madhurkiran Harikrishnan <madhurki@xilinx.com>
11Upstream-Status: Pending
12---
13 src/client/qwaylandwindow.cpp | 2 --
14 1 file changed, 2 deletions(-)
15
16diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
17index 6d7c088..94c89a3 100644
18--- a/src/client/qwaylandwindow.cpp
19+++ b/src/client/qwaylandwindow.cpp
20@@ -385,8 +385,6 @@ void QWaylandWindow::setVisible(bool visible)
21 QWindowSystemInterface::flushWindowSystemEvents();
22 if (!deleteGuard.isNull() && window()->type() == Qt::Popup)
23 closePopups(this);
24- if (!deleteGuard.isNull())
25- reset();
26 }
27 }
28
29--
302.7.4
31
diff --git a/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland/0002-Handle-maximize-minimize-fullscreen-in-xdg_shell_v6.patch b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland/0002-Handle-maximize-minimize-fullscreen-in-xdg_shell_v6.patch
new file mode 100644
index 00000000..52db5ac2
--- /dev/null
+++ b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland/0002-Handle-maximize-minimize-fullscreen-in-xdg_shell_v6.patch
@@ -0,0 +1,20 @@
1From 75ac221b9d78d97c121b984ffc633c8cdbe3a92d Mon Sep 17 00:00:00 2001
2From: Giulio Camuffo <giulio.camuffo@kdab.com>
3Date: Mon, 7 May 2018 17:40:57 -0700
4Subject: [PATCH 2/3] Handle maximize/minimize/fullscreen in xdg_shell_v6
5
6[ChangeLog][QPA plugin] Implement support for maximization, minimization
7and fullscreen with xdg-shell unstable v6.
8
9Task-number: QTBUG-63417
10Task-number: QTBUG-63748
11Change-Id: I385eb3279d91f1c38d2f5d46bc63b324f0456ca4
12
13signed-off-by: Giulio Camuffo <giulio.camuffo@kdab.com>
14Signed-off-by: Madhurkiran Harikrishnan <madhurki@xilinx.com>
15Upstream-Status: Backport
16---
17 src/client/qwaylandxdgshellv6.cpp | 22 ++++++++++++++++++++++
18 src/client/qwaylandxdgshellv6_p.h | 4 ++++
19 2 files changed, 26 insertions(+)
20
diff --git a/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland/0003-qwaylandeglwindow.cpp-Bind-the-context-before-callin.patch b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland/0003-qwaylandeglwindow.cpp-Bind-the-context-before-callin.patch
new file mode 100644
index 00000000..c29edab4
--- /dev/null
+++ b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland/0003-qwaylandeglwindow.cpp-Bind-the-context-before-callin.patch
@@ -0,0 +1,32 @@
1From 7067fce80a6e863532a86a5aeb9d6f53e538b387 Mon Sep 17 00:00:00 2001
2From: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
3Date: Wed, 5 Sep 2018 14:08:16 -0700
4Subject: [PATCH 3/3] qwaylandeglwindow.cpp: Bind the context before calling
5 eglDestroySurface
6
7Call eglMakeCurrent to bind the context to the current rendering thread
8before calling eglDestroySurface to avoid a crash caused by the post
9processing activity of GPU driver.
10
11Signed-off-by: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
12Upstream-Status: Pending
13---
14 src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp | 2 ++
15 1 file changed, 2 insertions(+)
16
17diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
18index 6b5c532..77cc433 100644
19--- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
20+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
21@@ -171,6 +171,8 @@ void QWaylandEglWindow::doInvalidateSurface()
22 void QWaylandEglWindow::invalidateSurface()
23 {
24 if (m_eglSurface) {
25+ eglMakeCurrent(m_clientBufferIntegration->eglDisplay(), EGL_NO_SURFACE,
26+ EGL_NO_SURFACE, EGL_NO_CONTEXT);
27 eglDestroySurface(m_clientBufferIntegration->eglDisplay(), m_eglSurface);
28 m_eglSurface = 0;
29 }
30--
312.7.4
32
diff --git a/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend
new file mode 100644
index 00000000..b51451a0
--- /dev/null
+++ b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend
@@ -0,0 +1,21 @@
1FILESEXTRAPATHS:prepend := "${THISDIR}/qtwayland:"
2# file://0001-qwaylandwindow.cpp-Do-not-destroy-shell-suface-befor.patch
3# file://0002-Handle-maximize-minimize-fullscreen-in-xdg_shell_v6.patch
4SRC_URI:append = " \
5 file://0003-qwaylandeglwindow.cpp-Bind-the-context-before-callin.patch \
6"
7# file://0001-Fix-regression-in-QWaylandGlContext-makeCurrent-for-.patch
8
9PACKAGECONFIG = " \
10 wayland-client \
11 wayland-server \
12 wayland-egl \
13 wayland-drm-egl-server-buffer \
14"
15
16# Links to libmali-xlnx, so it becomes MACHINE_ARCH specific
17DEFAULT_PACKAGE_ARCH := "${PACKAGE_ARCH}"
18MALI_PACKAGE_ARCH[vardepsexclude] = "MACHINE_ARCH"
19MALI_PACKAGE_ARCH = "${@'${MACHINE_ARCH}' if d.getVar('PREFERRED_PROVIDER_virtual/libgles1') == 'libmali-xlnx' else '${DEFAULT_PACKAGE_ARCH}'}"
20PACKAGE_ARCH[vardepsexclude] = "MALI_PACKAGE_ARCH"
21PACKAGE_ARCH = "${@bb.utils.contains_any('DEPENDS', 'virtual/libgles1 virtual/libgles2 virtual/egl virtual/libgbm', '${MALI_PACKAGE_ARCH}', '${DEFAULT_PACKAGE_ARCH}', d)}"
diff --git a/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwebengine_%.bbappend b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwebengine_%.bbappend
new file mode 100644
index 00000000..973608d3
--- /dev/null
+++ b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwebengine_%.bbappend
@@ -0,0 +1 @@
PACKAGECONFIG:append = " ffmpeg opus"
diff --git a/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwebkit_%.bbappend b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwebkit_%.bbappend
new file mode 100644
index 00000000..0997181a
--- /dev/null
+++ b/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwebkit_%.bbappend
@@ -0,0 +1,8 @@
1# Links to libmali-xlnx, so it becomes MACHINE_ARCH specific
2DEFAULT_PACKAGE_ARCH := "${PACKAGE_ARCH}"
3MALI_PACKAGE_ARCH[vardepsexclude] = "MACHINE_ARCH"
4MALI_PACKAGE_ARCH = "${@'${MACHINE_ARCH}' if d.getVar('PREFERRED_PROVIDER_virtual/libgles1') == 'libmali-xlnx' else '${DEFAULT_PACKAGE_ARCH}'}"
5PACKAGE_ARCH[vardepsexclude] = "MALI_PACKAGE_ARCH"
6PACKAGE_ARCH = "${@bb.utils.contains_any('DEPENDS', 'qtmultimedia', '${MALI_PACKAGE_ARCH}', '${DEFAULT_PACKAGE_ARCH}', d)}"
7# Note: qtmultimedia has a dependency on gstreamer1.0-plugins-base, which has a dependency on opengl, which infects directly linking to it
8