[oe] [meta-qt5][PATCH v2] qtbase: prevent artifacts on raster windows using eglfs plugin

Martin Jansa martin.jansa at gmail.com
Tue Mar 4 22:01:25 UTC 2014


On Tue, Mar 04, 2014 at 03:43:24PM -0500, Denys Dmytriyenko wrote:
> On Wed, Mar 05, 2014 at 01:26:05AM +1100, Jonathan Liu wrote:
> > Signed-off-by: Jonathan Liu <net147 at gmail.com>
> > ---
> >  recipes-qt/qt5/qtbase.inc                          |  1 +
> >  .../qt5/qtbase/0001-Add-linux-oe-g-platform.patch  |  2 +-
> >  ...o-allow-to-set-qt.conf-from-the-outside-u.patch |  2 +-
> >  .../0003-Add-external-hostbindir-option.patch      |  2 +-
> >  ...p-Prefix-default-LIBDIRS-and-INCDIRS-with.patch |  2 +-
> >  .../0005-qt_module-Fix-pkgconfig-replacement.patch |  2 +-
> >  ...on-t-export-SYSTEM_VARIABLES-to-.qmake.va.patch |  2 +-
> >  ....prf-Allow-to-add-extra-arguments-to-make.patch |  2 +-
> >  ...ake-pulseaudio-alsa-freetype-a-configurab.patch |  2 +-
> >  ...E_QMAKE_PATH_EXTERNAL_HOST_BINS-to-determ.patch |  2 +-
> >  ...0-qmake-is-already-built-in-qtbase-native.patch |  2 +-
> >  ...-building-a-separate-qmake-for-the-target.patch |  2 +-
> >  .../0012-qtbase-allow-build-of-examples.patch      |  2 +-
> >  .../0013-QOpenGLPaintDevice-sub-area-support.patch |  2 +-
> >  ...gl-error-for-platforms-only-supporting-on.patch |  2 +-
> >  .../0015-Fix-linuxfb-argument-mmsize-parsing.patch |  2 +-
> >  .../qtbase/0016-eglfs-Fix-quad-coordinates.patch   | 39 ++++++++++++++++++++++
> >  17 files changed, 55 insertions(+), 15 deletions(-)
> >  create mode 100644 recipes-qt/qt5/qtbase/0016-eglfs-Fix-quad-coordinates.patch
> > 
> > diff --git a/recipes-qt/qt5/qtbase.inc b/recipes-qt/qt5/qtbase.inc
> > index f1a10bb..e5d98df 100644
> > --- a/recipes-qt/qt5/qtbase.inc
> > +++ b/recipes-qt/qt5/qtbase.inc
> > @@ -20,6 +20,7 @@ SRC_URI += "\
> >      file://0013-QOpenGLPaintDevice-sub-area-support.patch \
> >      file://0014-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch \
> >      file://0015-Fix-linuxfb-argument-mmsize-parsing.patch \
> > +    file://0016-eglfs-Fix-quad-coordinates.patch \
> >  "
> >  
> >  DEPENDS += "qtbase-native"
> > diff --git a/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch b/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
> > index 030a091..b256f14 100644
> > --- a/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
> > +++ b/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch
> > @@ -1,7 +1,7 @@
> >  From f883ec8652ee603d9bb9def7eb669ed82c493961 Mon Sep 17 00:00:00 2001
> >  From: Martin Jansa <Martin.Jansa at gmail.com>
> >  Date: Mon, 15 Apr 2013 04:29:32 +0200
> > -Subject: [PATCH 01/15] Add linux-oe-g++ platform
> > +Subject: [PATCH 01/16] Add linux-oe-g++ platform
> 
> Not sure you need to touch every patch in the original series to update the 
> count. Maintainers should probably do that when they feel the need... But it's 
> up to them to decide one way or another, just saying that this patch will be 
> cleaner otherwise...

From my perspective, I usually use https://github.com/meta-qt5/qtbase to
prepare the patches and then dump them all, put them to qtbase dir just
to see if they are different and if the only change are these numbers I
don't include them in commit.

In some cases (e.g. when upgrading) when there is even small change in
only one .patch file, I'll update the numbers in all of them. Or when I
forgot to exclude them.

So I agree it would be a bit cleaner, but still I plan to take this and
I'm happy to see patches which I can easily add to qtbase fork on
github.

> >  * This qmake.conf unlike other platforms reads most variables from
> >    shell environment, because it's easier for qt recipes to export
> > diff --git a/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch b/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
> > index 525260a..870aa9f 100644
> > --- a/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
> > +++ b/recipes-qt/qt5/qtbase/0002-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
> > @@ -1,7 +1,7 @@
> >  From 841d1f06f3fd2f59f6b18067b02d5fcfc93aaa7a Mon Sep 17 00:00:00 2001
> >  From: Holger Freyther <zecke at selfish.org>
> >  Date: Wed, 26 Sep 2012 17:22:30 +0200
> > -Subject: [PATCH 02/15] qlibraryinfo: allow to set qt.conf from the outside
> > +Subject: [PATCH 02/16] qlibraryinfo: allow to set qt.conf from the outside
> >   using the environment
> >  
> >  Allow to set a qt.conf from the outside using the environment. This allows
> > diff --git a/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch b/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch
> > index 91b0a6c..c82e9d1 100644
> > --- a/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch
> > +++ b/recipes-qt/qt5/qtbase/0003-Add-external-hostbindir-option.patch
> > @@ -1,7 +1,7 @@
> >  From 3648eeddaed0cf31fba226ec713d2321f398974f Mon Sep 17 00:00:00 2001
> >  From: Martin Jansa <Martin.Jansa at gmail.com>
> >  Date: Sat, 6 Apr 2013 13:15:07 +0200
> > -Subject: [PATCH 03/15] Add -external-hostbindir option
> > +Subject: [PATCH 03/16] Add -external-hostbindir option
> >  
> >  * when cross-compiling it's sometimes useful to use existing tools from machine
> >    (or in OpenEmbedded built with separate native recipe) when building for target
> > diff --git a/recipes-qt/qt5/qtbase/0004-configureapp-Prefix-default-LIBDIRS-and-INCDIRS-with.patch b/recipes-qt/qt5/qtbase/0004-configureapp-Prefix-default-LIBDIRS-and-INCDIRS-with.patch
> > index b1cdfa4..f1184e5 100644
> > --- a/recipes-qt/qt5/qtbase/0004-configureapp-Prefix-default-LIBDIRS-and-INCDIRS-with.patch
> > +++ b/recipes-qt/qt5/qtbase/0004-configureapp-Prefix-default-LIBDIRS-and-INCDIRS-with.patch
> > @@ -1,7 +1,7 @@
> >  From 698f073fb8cc6dc1ced277b6ae2056cb9d02f2d5 Mon Sep 17 00:00:00 2001
> >  From: Martin Jansa <Martin.Jansa at gmail.com>
> >  Date: Sat, 27 Apr 2013 22:33:33 +0200
> > -Subject: [PATCH 04/15] configureapp: Prefix default LIBDIRS and INCDIRS with
> > +Subject: [PATCH 04/16] configureapp: Prefix default LIBDIRS and INCDIRS with
> >   SYSROOT
> >  
> >  Upstream-Status: Pending
> > diff --git a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> > index 9ac5f6a..f1770bd 100644
> > --- a/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> > +++ b/recipes-qt/qt5/qtbase/0005-qt_module-Fix-pkgconfig-replacement.patch
> > @@ -1,7 +1,7 @@
> >  From 7999eeb3f2ab1150aa301ec26ae9bf0788d09c9e Mon Sep 17 00:00:00 2001
> >  From: Martin Jansa <Martin.Jansa at gmail.com>
> >  Date: Sat, 27 Apr 2013 23:15:37 +0200
> > -Subject: [PATCH 05/15] qt_module: Fix pkgconfig replacement
> > +Subject: [PATCH 05/16] qt_module: Fix pkgconfig replacement
> >  MIME-Version: 1.0
> >  Content-Type: text/plain; charset=UTF-8
> >  Content-Transfer-Encoding: 8bit
> > diff --git a/recipes-qt/qt5/qtbase/0006-configure-don-t-export-SYSTEM_VARIABLES-to-.qmake.va.patch b/recipes-qt/qt5/qtbase/0006-configure-don-t-export-SYSTEM_VARIABLES-to-.qmake.va.patch
> > index d514da3..0bd53cf 100644
> > --- a/recipes-qt/qt5/qtbase/0006-configure-don-t-export-SYSTEM_VARIABLES-to-.qmake.va.patch
> > +++ b/recipes-qt/qt5/qtbase/0006-configure-don-t-export-SYSTEM_VARIABLES-to-.qmake.va.patch
> > @@ -1,7 +1,7 @@
> >  From ebd38fc708cf7190e47a75754235f56fa5d86300 Mon Sep 17 00:00:00 2001
> >  From: Martin Jansa <Martin.Jansa at gmail.com>
> >  Date: Wed, 8 May 2013 23:54:35 +0200
> > -Subject: [PATCH 06/15] configure: don't export SYSTEM_VARIABLES to .qmake.vars
> > +Subject: [PATCH 06/16] configure: don't export SYSTEM_VARIABLES to .qmake.vars
> >  
> >  * linux-oe-g++ should handle this correctly and exporting LD as QMAKE_LINK is
> >    causing issues as we need g++ to be used as linker
> > diff --git a/recipes-qt/qt5/qtbase/0007-configure.prf-Allow-to-add-extra-arguments-to-make.patch b/recipes-qt/qt5/qtbase/0007-configure.prf-Allow-to-add-extra-arguments-to-make.patch
> > index 821e5b8..abe26a1 100644
> > --- a/recipes-qt/qt5/qtbase/0007-configure.prf-Allow-to-add-extra-arguments-to-make.patch
> > +++ b/recipes-qt/qt5/qtbase/0007-configure.prf-Allow-to-add-extra-arguments-to-make.patch
> > @@ -1,7 +1,7 @@
> >  From 828eecd8f361cb965bd40f535435efa91665c8e5 Mon Sep 17 00:00:00 2001
> >  From: Martin Jansa <Martin.Jansa at gmail.com>
> >  Date: Thu, 9 May 2013 10:06:50 +0200
> > -Subject: [PATCH 07/15] configure.prf: Allow to add extra arguments to make
> > +Subject: [PATCH 07/16] configure.prf: Allow to add extra arguments to make
> >  
> >  * sometimes we would like to add -e or define some variable and respect it from both
> >    Makefiles used in configure tests and also Makefiles to build the application
> > diff --git a/recipes-qt/qt5/qtbase/0008-configure-make-pulseaudio-alsa-freetype-a-configurab.patch b/recipes-qt/qt5/qtbase/0008-configure-make-pulseaudio-alsa-freetype-a-configurab.patch
> > index 4abc465..7011025 100644
> > --- a/recipes-qt/qt5/qtbase/0008-configure-make-pulseaudio-alsa-freetype-a-configurab.patch
> > +++ b/recipes-qt/qt5/qtbase/0008-configure-make-pulseaudio-alsa-freetype-a-configurab.patch
> > @@ -1,7 +1,7 @@
> >  From 3923edc900d1b3dd23e0a6af3a32255707cd497c Mon Sep 17 00:00:00 2001
> >  From: Paul Eggleton <paul.eggleton at linux.intel.com>
> >  Date: Tue, 28 Feb 2012 15:10:24 +0000
> > -Subject: [PATCH 08/15] configure: make pulseaudio, alsa, freetype a
> > +Subject: [PATCH 08/16] configure: make pulseaudio, alsa, freetype a
> >   configurable option
> >  
> >  Allows disabling pulseaudio, alsa, freetype support at configure time
> > diff --git a/recipes-qt/qt5/qtbase/0009-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-determ.patch b/recipes-qt/qt5/qtbase/0009-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-determ.patch
> > index b52d02d..6b7bc1e 100644
> > --- a/recipes-qt/qt5/qtbase/0009-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-determ.patch
> > +++ b/recipes-qt/qt5/qtbase/0009-cmake-Use-OE_QMAKE_PATH_EXTERNAL_HOST_BINS-to-determ.patch
> > @@ -1,7 +1,7 @@
> >  From acbd622d1b91c1aa9ec8c48d10d91354d175345c Mon Sep 17 00:00:00 2001
> >  From: Simon Busch <morphis at gravedo.de>
> >  Date: Mon, 22 Jul 2013 21:09:41 +0000
> > -Subject: [PATCH 09/15] cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to
> > +Subject: [PATCH 09/16] cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to
> >   determine path to host binaries
> >  
> >  Upstream-Status: Inappropiate (configuration)
> > diff --git a/recipes-qt/qt5/qtbase/0010-qmake-is-already-built-in-qtbase-native.patch b/recipes-qt/qt5/qtbase/0010-qmake-is-already-built-in-qtbase-native.patch
> > index eb2da1e..e9266cb 100644
> > --- a/recipes-qt/qt5/qtbase/0010-qmake-is-already-built-in-qtbase-native.patch
> > +++ b/recipes-qt/qt5/qtbase/0010-qmake-is-already-built-in-qtbase-native.patch
> > @@ -1,7 +1,7 @@
> >  From 77a18a9fe2d0e4a1dcd95e2d78c85eb37452bc73 Mon Sep 17 00:00:00 2001
> >  From: Michael Krelin <hacker at klever.net>
> >  Date: Mon, 29 Oct 2012 20:07:49 -0700
> > -Subject: [PATCH 10/15] qmake is already built in qtbase-native
> > +Subject: [PATCH 10/16] qmake is already built in qtbase-native
> >  
> >  Ported from OE by: Yu Ke <ke.yu at intel.com>
> >  Upstream-Status: Inappropriate [configuration]
> > diff --git a/recipes-qt/qt5/qtbase/0011-Allow-building-a-separate-qmake-for-the-target.patch b/recipes-qt/qt5/qtbase/0011-Allow-building-a-separate-qmake-for-the-target.patch
> > index e028f35..a477348 100644
> > --- a/recipes-qt/qt5/qtbase/0011-Allow-building-a-separate-qmake-for-the-target.patch
> > +++ b/recipes-qt/qt5/qtbase/0011-Allow-building-a-separate-qmake-for-the-target.patch
> > @@ -1,7 +1,7 @@
> >  From dd14f3eda61669c66c95dbcbca3afbd61f9aa746 Mon Sep 17 00:00:00 2001
> >  From: Paul Eggleton <paul.eggleton at linux.intel.com>
> >  Date: Mon, 29 Oct 2012 20:26:36 -0700
> > -Subject: [PATCH 11/15] Allow building a separate qmake for the target
> > +Subject: [PATCH 11/16] Allow building a separate qmake for the target
> >  
> >  Upstream-Status: Inappropriate [config]
> >  
> > diff --git a/recipes-qt/qt5/qtbase/0012-qtbase-allow-build-of-examples.patch b/recipes-qt/qt5/qtbase/0012-qtbase-allow-build-of-examples.patch
> > index 3e8f1e2..19ba150 100644
> > --- a/recipes-qt/qt5/qtbase/0012-qtbase-allow-build-of-examples.patch
> > +++ b/recipes-qt/qt5/qtbase/0012-qtbase-allow-build-of-examples.patch
> > @@ -1,7 +1,7 @@
> >  From 6e5e22110b4731b4324d309bc579393f422ba99d Mon Sep 17 00:00:00 2001
> >  From: =?UTF-8?q?Eric=20B=C3=A9nard?= <eric at eukrea.com>
> >  Date: Sat, 25 May 2013 17:34:32 +0200
> > -Subject: [PATCH 12/15] qtbase: allow build of examples
> > +Subject: [PATCH 12/16] qtbase: allow build of examples
> >  MIME-Version: 1.0
> >  Content-Type: text/plain; charset=UTF-8
> >  Content-Transfer-Encoding: 8bit
> > diff --git a/recipes-qt/qt5/qtbase/0013-QOpenGLPaintDevice-sub-area-support.patch b/recipes-qt/qt5/qtbase/0013-QOpenGLPaintDevice-sub-area-support.patch
> > index 8366364..e1eabb5 100644
> > --- a/recipes-qt/qt5/qtbase/0013-QOpenGLPaintDevice-sub-area-support.patch
> > +++ b/recipes-qt/qt5/qtbase/0013-QOpenGLPaintDevice-sub-area-support.patch
> > @@ -1,7 +1,7 @@
> >  From 2fad0a6fa3c06577995ac44ed0a2a12eaef819c2 Mon Sep 17 00:00:00 2001
> >  From: Jani Hautakangas <jani.hautakangas at ixonos.com>
> >  Date: Thu, 16 May 2013 09:52:07 +0300
> > -Subject: [PATCH 13/15] QOpenGLPaintDevice sub-area support
> > +Subject: [PATCH 13/16] QOpenGLPaintDevice sub-area support
> >  
> >  Allows creating QOpenGLPaintDevice targetting sub-area
> >  of binded framebuffer.
> > diff --git a/recipes-qt/qt5/qtbase/0014-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch b/recipes-qt/qt5/qtbase/0014-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch
> > index 9c366b6..0835a6f 100644
> > --- a/recipes-qt/qt5/qtbase/0014-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch
> > +++ b/recipes-qt/qt5/qtbase/0014-eglfs-fix-egl-error-for-platforms-only-supporting-on.patch
> > @@ -1,7 +1,7 @@
> >  From c8995c6eb6cf4bfa8daf1e3e96bd4885a096f405 Mon Sep 17 00:00:00 2001
> >  From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony at googlemail.com>
> >  Date: Wed, 5 Feb 2014 18:35:08 +0100
> > -Subject: [PATCH 14/15] eglfs: fix egl error for platforms only supporting one
> > +Subject: [PATCH 14/16] eglfs: fix egl error for platforms only supporting one
> >   window/surface
> >  MIME-Version: 1.0
> >  Content-Type: text/plain; charset=UTF-8
> > diff --git a/recipes-qt/qt5/qtbase/0015-Fix-linuxfb-argument-mmsize-parsing.patch b/recipes-qt/qt5/qtbase/0015-Fix-linuxfb-argument-mmsize-parsing.patch
> > index c9836c8..a4b1379 100644
> > --- a/recipes-qt/qt5/qtbase/0015-Fix-linuxfb-argument-mmsize-parsing.patch
> > +++ b/recipes-qt/qt5/qtbase/0015-Fix-linuxfb-argument-mmsize-parsing.patch
> > @@ -1,7 +1,7 @@
> >  From 99979159a404df09495c8ddd6a052837f66b8739 Mon Sep 17 00:00:00 2001
> >  From: =?UTF-8?q?Peter=20K=C3=BCmmel?= <syntheticpp at gmx.net>
> >  Date: Fri, 7 Feb 2014 13:12:37 +0100
> > -Subject: [PATCH 15/15] Fix linuxfb argument 'mmsize' parsing
> > +Subject: [PATCH 15/16] Fix linuxfb argument 'mmsize' parsing
> >  
> >  Parse first for 'mmsize' because the regex for 'size' also fits to 'mmsize'.
> >  
> > diff --git a/recipes-qt/qt5/qtbase/0016-eglfs-Fix-quad-coordinates.patch b/recipes-qt/qt5/qtbase/0016-eglfs-Fix-quad-coordinates.patch
> > new file mode 100644
> > index 0000000..f0dfc9c
> > --- /dev/null
> > +++ b/recipes-qt/qt5/qtbase/0016-eglfs-Fix-quad-coordinates.patch
> > @@ -0,0 +1,39 @@
> > +From 84756d94c73885803ad8044099ab47c0c49b5076 Mon Sep 17 00:00:00 2001
> > +From: Laszlo Agocs <laszlo.agocs at digia.com>
> > +Date: Thu, 23 Jan 2014 11:45:22 +0100
> > +Subject: [PATCH 16/16] eglfs: Fix quad coordinates
> > +
> > +Prevent artifacts on raster windows by properly mapping
> > +the coordinates to [-1,1].
> > +
> > +Upstream-Status: Backport
> > +
> > +Task-number: QTBUG-36370
> > +Change-Id: I95d0d03952f597ef4ce6a950c6533a3af2df964a
> > +Reviewed-by: Andy Nichols <andy.nichols at digia.com>
> > +Signed-off-by: Jonathan Liu <net147 at gmail.com>
> > +---
> > + src/plugins/platforms/eglfs/qeglfscompositor.cpp | 5 +++--
> > + 1 file changed, 3 insertions(+), 2 deletions(-)
> > +
> > +diff --git a/src/plugins/platforms/eglfs/qeglfscompositor.cpp b/src/plugins/platforms/eglfs/qeglfscompositor.cpp
> > +index 845bb5b..1efc4f7 100644
> > +--- a/src/plugins/platforms/eglfs/qeglfscompositor.cpp
> > ++++ b/src/plugins/platforms/eglfs/qeglfscompositor.cpp
> > +@@ -153,10 +153,11 @@ void QEglFSCompositor::render(QEglFSWindow *window, uint texture, bool raster)
> > +     QPoint tl = r.topLeft();
> > +     QPoint br = r.bottomRight();
> > + 
> > ++    // Map to [-1,1]
> > +     GLfloat x1 = (tl.x() / sr.width()) * 2 - 1;
> > +-    GLfloat x2 = (br.x() / sr.width()) * 2 - 1;
> > +     GLfloat y1 = ((sr.height() - tl.y()) / sr.height()) * 2 - 1;
> > +-    GLfloat y2 = ((sr.height() - br.y()) / sr.height()) * 2 - 1;
> > ++    GLfloat x2 = ((br.x() + 1) / sr.width()) * 2 - 1;
> > ++    GLfloat y2 = ((sr.height() - (br.y() + 1)) / sr.height()) * 2 - 1;
> > + 
> > +     if (!raster)
> > +         qSwap(y1, y2);
> > +-- 
> > +1.7.1
> > +
> > -- 
> > 1.9.0
> > 
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel at lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20140304/11f5d4dd/attachment-0002.sig>


More information about the Openembedded-devel mailing list