qt5: Fix timer leak in qtwayland to avoid animations being sluggish 59/26759/2
authorHiroyuki Ishii <ishii.hiroyuki002@jp.panasonic.com>
Tue, 29 Jun 2021 08:13:03 +0000 (17:13 +0900)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Mon, 1 Nov 2021 20:08:45 +0000 (20:08 +0000)
commita9ff714186334bce8fba9e7ebbbfbf50f05ba9db
tree8d124121e40402bcede13efddfc04a16ba1b24bc
parent9e79df7d3603ed49ff26f3ead447ad9d873a3395
qt5: Fix timer leak in qtwayland to avoid animations being sluggish

With long-running qt applications which have fluid animations
in wayland environment, the animation becomes obviously sluggish
because massive amount of memcpy() is called through a constructor
being placed in a loop in QTimerInfoList::timerInsert() function.
This is caused by a timer-index leak bug of qtwayland, which is
already reported to the qt project as following ticket.

https://bugreports.qt.io/browse/QTBUG-79838

Unfortunately QTBUG-79838 is still open because maintenance of
non-commercial version of qt5 is already stopped. However, we've
confirmed that the patch attached to that ticket works fine
except for that part of it is no longer needed due to the deletion
of the code. So let's apply only effective part of it.

Bug-AGL: SPEC-3991

Signed-off-by: Hiroyuki Ishii <ishii.hiroyuki002@jp.panasonic.com>
Change-Id: Ib148b81aabb98e8df10c1414cdbfe26f7ddf09a6
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/26466
Tested-by: Jenkins Job builder account
ci-image-build: Jenkins Job builder account
ci-image-boot-test: Jenkins Job builder account
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/26759
Reviewed-by: Scott Murray <scott.murray@konsulko.com>
Reviewed-by: Naoto YAMAGUCHI <naoto.yamaguchi@aisin.co.jp>
meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtwayland/0001-Fix-timer-leak-and-a-potential-race.patch [new file with mode: 0644]
meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtwayland_%.bbappend [new file with mode: 0644]
meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtwayland_aglcore.inc [new file with mode: 0644]