summaryrefslogtreecommitdiffstats
path: root/meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase
diff options
context:
space:
mode:
Diffstat (limited to 'meta-xilinx-mali400/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase')
-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
2 files changed, 141 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();