diff options
author | Bart Ribbers <bribbers@disroot.org> | 2020-02-20 16:12:31 +0100 |
---|---|---|
committer | Leo <thinkabit.ukim@gmail.com> | 2020-02-24 19:18:43 -0300 |
commit | 65f58742e6e669c7d0f5b23c0764f4f73661980b (patch) | |
tree | 76a9004e9c481ced23debc121c304bdc24273ae4 /community/qt5-qtwayland | |
parent | 76ca77d9ba8ee59f1a761b7d44252958584347bc (diff) | |
download | aports-65f58742e6e669c7d0f5b23c0764f4f73661980b.tar.bz2 aports-65f58742e6e669c7d0f5b23c0764f4f73661980b.tar.xz |
{community,testing}/qt: upgrade to 5.14.1
Diffstat (limited to 'community/qt5-qtwayland')
-rw-r--r-- | community/qt5-qtwayland/03e8c91fc28b77c4f027b6c6d582b85878efae41.patch | 135 | ||||
-rw-r--r-- | community/qt5-qtwayland/APKBUILD | 13 |
2 files changed, 5 insertions, 143 deletions
diff --git a/community/qt5-qtwayland/03e8c91fc28b77c4f027b6c6d582b85878efae41.patch b/community/qt5-qtwayland/03e8c91fc28b77c4f027b6c6d582b85878efae41.patch deleted file mode 100644 index 7bcd572024..0000000000 --- a/community/qt5-qtwayland/03e8c91fc28b77c4f027b6c6d582b85878efae41.patch +++ /dev/null @@ -1,135 +0,0 @@ -From 03e8c91fc28b77c4f027b6c6d582b85878efae41 Mon Sep 17 00:00:00 2001 -From: Johan Klokkhammer Helsing <johan.helsing@qt.io> -Date: Tue, 15 Oct 2019 09:51:43 +0200 -Subject: [PATCH] Client: Fix 100ms freeze when applications do not swap after - deliverUpdateRequest - -[ChangeLog][QPA plugin] Fixed a 100 ms freeze that would occur if applications -did not draw after receiving a deliverUpdateRequest(). - -QtQuick does this at the start of animations. This should get rid of those -backingstore warnings (and also remove a 100ms freeze before animations start -in those instances). - -Fixes: QTBUG-76813 -Change-Id: Id366bf4a14f402fa44530ae46e7b66d9988c14f6 -Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> -Reviewed-by: John Brooks <john.brooks@qt.io> -(cherry picked from commit 9f5b96225885f927727a57b6123d8550d6c373bb) ---- - src/client/qwaylandwindow.cpp | 46 +++++++++---------------------------------- - src/client/qwaylandwindow_p.h | 1 - - 2 files changed, 9 insertions(+), 38 deletions(-) - -diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp -index 3cd7892a7..109110aef 100644 ---- a/src/client/qwaylandwindow.cpp -+++ b/src/client/qwaylandwindow.cpp -@@ -1097,25 +1097,6 @@ QVariant QWaylandWindow::property(const QString &name, const QVariant &defaultVa - - void QWaylandWindow::timerEvent(QTimerEvent *event) - { -- if (event->timerId() == mFallbackUpdateTimerId) { -- killTimer(mFallbackUpdateTimerId); -- mFallbackUpdateTimerId = -1; -- qCDebug(lcWaylandBackingstore) << "mFallbackUpdateTimer timed out"; -- -- if (!isExposed()) { -- qCDebug(lcWaylandBackingstore) << "Fallback update timer: Window not exposed," -- << "not delivering update request."; -- return; -- } -- -- if (mWaitingForUpdate && hasPendingUpdateRequest() && !mWaitingForFrameCallback) { -- qCWarning(lcWaylandBackingstore) << "Delivering update request through fallback timer," -- << "may not be in sync with display"; -- deliverUpdateRequest(); -- } -- } -- -- - if (mFrameCallbackTimerId.testAndSetOrdered(event->timerId(), -1)) { - killTimer(event->timerId()); - qCDebug(lcWaylandBackingstore) << "Didn't receive frame callback in time, window should now be inexposed"; -@@ -1127,6 +1108,7 @@ void QWaylandWindow::timerEvent(QTimerEvent *event) - - void QWaylandWindow::requestUpdate() - { -+ qCDebug(lcWaylandBackingstore) << "requestUpdate"; - Q_ASSERT(hasPendingUpdateRequest()); // should be set by QPA - - // If we have a frame callback all is good and will be taken care of there -@@ -1134,20 +1116,17 @@ void QWaylandWindow::requestUpdate() - return; - - // If we've already called deliverUpdateRequest(), but haven't seen any attach+commit/swap yet -- if (mWaitingForUpdate) { -- // Ideally, we should just have returned here, but we're not guaranteed that the client -- // will actually update, so start this timer to deliver another request update after a while -- // *IF* the client doesn't update. -- int fallbackTimeout = 100; -- mFallbackUpdateTimerId = startTimer(fallbackTimeout); -- return; -- } -+ // This is a somewhat redundant behavior and might indicate a bug in the calling code, so log -+ // here so we can get this information when debugging update/frame callback issues. -+ // Continue as nothing happened, though. -+ if (mWaitingForUpdate) -+ qCDebug(lcWaylandBackingstore) << "requestUpdate called twice without committing anything"; - - // Some applications (such as Qt Quick) depend on updates being delivered asynchronously, - // so use invokeMethod to delay the delivery a bit. - QMetaObject::invokeMethod(this, [this] { - // Things might have changed in the meantime -- if (hasPendingUpdateRequest() && !mWaitingForUpdate && !mWaitingForFrameCallback) -+ if (hasPendingUpdateRequest() && !mWaitingForFrameCallback) - deliverUpdateRequest(); - }, Qt::QueuedConnection); - } -@@ -1157,6 +1136,7 @@ void QWaylandWindow::requestUpdate() - // Can be called from the render thread (without locking anything) so make sure to not make races in this method. - void QWaylandWindow::handleUpdate() - { -+ qCDebug(lcWaylandBackingstore) << "handleUpdate" << QThread::currentThread(); - // TODO: Should sync subsurfaces avoid requesting frame callbacks? - QReadLocker lock(&mSurfaceLock); - if (!isInitialized()) -@@ -1167,15 +1147,6 @@ void QWaylandWindow::handleUpdate() - mFrameCallback = nullptr; - } - -- if (mFallbackUpdateTimerId != -1) { -- // Ideally, we would stop the fallback timer here, but since we're on another thread, -- // it's not allowed. Instead we set mFallbackUpdateTimer to -1 here, so we'll just -- // ignore it if it times out before it's cleaned up by the invokeMethod call. -- int id = mFallbackUpdateTimerId; -- mFallbackUpdateTimerId = -1; -- QMetaObject::invokeMethod(this, [this, id] { killTimer(id); }, Qt::QueuedConnection); -- } -- - mFrameCallback = frame(); - wl_callback_add_listener(mFrameCallback, &QWaylandWindow::callbackListener, this); - mWaitingForFrameCallback = true; -@@ -1195,6 +1166,7 @@ void QWaylandWindow::handleUpdate() - - void QWaylandWindow::deliverUpdateRequest() - { -+ qCDebug(lcWaylandBackingstore) << "deliverUpdateRequest"; - mWaitingForUpdate = true; - QPlatformWindow::deliverUpdateRequest(); - } -diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h -index 717709938..0369bd0c2 100644 ---- a/src/client/qwaylandwindow_p.h -+++ b/src/client/qwaylandwindow_p.h -@@ -229,7 +229,6 @@ protected: - - // True when we have called deliverRequestUpdate, but the client has not yet attached a new buffer - bool mWaitingForUpdate = false; -- int mFallbackUpdateTimerId = -1; // Started when waiting for app to commit - - QMutex mResizeLock; - bool mWaitingToApplyConfigure = false; --- -2.16.3 - diff --git a/community/qt5-qtwayland/APKBUILD b/community/qt5-qtwayland/APKBUILD index 271e243e3c..1f4da4bee4 100644 --- a/community/qt5-qtwayland/APKBUILD +++ b/community/qt5-qtwayland/APKBUILD @@ -1,9 +1,8 @@ # Contributor: Bart Ribbers <bribbers@disroot.org> # Maintainer: Bart Ribbers <bribbers@disroot.org> pkgname=qt5-qtwayland -_pkgname="${pkgname/qt5-/}-everywhere-src" -pkgver=5.12.5 -pkgrel=3 +pkgver=5.14.1 +pkgrel=0 arch="all !armhf" # armhf blocked by qt5-qtdeclarative url="https://www.qt.io/developers/" license="LGPL-2.1-only AND LGPL-3.0-only AND GPL-3.0-only AND Qt-GPL-exception-1.0" @@ -11,15 +10,14 @@ pkgdesc='Provides APIs for Wayland' makedepends="$depends_dev libxkbcommon-dev libxcomposite-dev qt5-qtquickcontrols2-dev qt5-qtdeclarative-dev qt5-qtbase-dev wayland-dev" subpackages="$pkgname-dev $pkgname-doc" -builddir="$srcdir/$_pkgname-$pkgver" +builddir="$srcdir/qtwayland-everywhere-src-$pkgver" case $pkgver in *_beta*|*_rc*) _rel=development_releases;; *) _rel=official_releases;; esac -source="http://download.qt.io/$_rel/qt/${pkgver%.*}/$pkgver/submodules/qtwayland-everywhere-src-$pkgver.tar.xz - 03e8c91fc28b77c4f027b6c6d582b85878efae41.patch" +source="http://download.qt.io/$_rel/qt/${pkgver%.*}/$pkgver/submodules/qtwayland-everywhere-src-$pkgver.tar.xz" build() { qmake-qt5 @@ -40,5 +38,4 @@ package() { install -d "$pkgdir"/usr/share/licenses ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/$pkgname } -sha512sums="19e19b3d6226839856f8e8792665eda1f09f0bbf95a38077bdf2831205ee09254c8df6a521ba3f5a228bcd98c4d1929a2bd9e9aa2f6f14c218d4d7458d1a866c qtwayland-everywhere-src-5.12.5.tar.xz -f570e9b11611ec43289afc83230b094f974c7d48be5b79e00b3815b5fb92ec845c768fa2911ccfbeec29dda338d0b3fab8cc9702536c816c78d98820d38466c9 03e8c91fc28b77c4f027b6c6d582b85878efae41.patch" +sha512sums="6cdfb527ce8160b562343bfb3959dfcd8ccc91a50817756547f4a0559b77372bee7587bc2e4e658e15b58ecb52c6eb0ef2193e30a285d13c4192bb03a1149cfc qtwayland-everywhere-src-5.14.1.tar.xz" |