diff --git a/libqt5-qtdeclarative.changes b/libqt5-qtdeclarative.changes index 09c449d..f7ebd1f 100644 --- a/libqt5-qtdeclarative.changes +++ b/libqt5-qtdeclarative.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Sun Oct 8 13:57:42 UTC 2017 - lbeltrame@kde.org + +- Update to 5.9.2 + * For more details please see: + https://blog.qt.io/blog/2017/10/06/qt-5-9-2-released/ +- Dropped patches, now upstream: + * rebuild-qqmldata-propertycache-if-deleted.patch + * support-non-integer-pixel-ratios-qquickwidget.patch + ------------------------------------------------------------------- Wed Aug 9 20:26:28 CEST 2017 - ro@suse.de diff --git a/libqt5-qtdeclarative.spec b/libqt5-qtdeclarative.spec index 9b7279f..d665d0a 100644 --- a/libqt5-qtdeclarative.spec +++ b/libqt5-qtdeclarative.spec @@ -21,22 +21,18 @@ %define libname libQtQuick5 Name: libqt5-qtdeclarative -Version: 5.9.1 +Version: 5.9.2 Release: 0 Summary: Qt 5 Declarative Library License: SUSE-LGPL-2.1-with-digia-exception-1.1 or GPL-3.0 Group: Development/Libraries/X11 Url: https://www.qt.io %define base_name libqt5 -%define real_version 5.9.1 -%define so_version 5.9.1 +%define real_version 5.9.2 +%define so_version 5.9.2 %define tar_version qtdeclarative-opensource-src-%{real_version} Source: https://download.qt.io/official_releases/qt/5.9/%{real_version}/submodules/%{tar_version}.tar.xz Source1: baselibs.conf -# PATCH-FIX-UPSTREAM -Patch1: support-non-integer-pixel-ratios-qquickwidget.patch -# PATCH-FIX-UPSTREAM -Patch2: rebuild-qqmldata-propertycache-if-deleted.patch # PATCH-FIX-OPENSUSE sse2_nojit.patch -- enable JIT and sse2 only on sse2 case Patch100: sse2_nojit.patch # PATCH-FIX-OPENSUSE @@ -77,8 +73,6 @@ handling. %prep %setup -q -n qtdeclarative-opensource-src-%{real_version} -%patch1 -p1 -%patch2 -p1 %ifarch %ix86 %patch100 -p1 %endif diff --git a/qtdeclarative-opensource-src-5.9.1.tar.xz b/qtdeclarative-opensource-src-5.9.1.tar.xz deleted file mode 100644 index 3e7410f..0000000 --- a/qtdeclarative-opensource-src-5.9.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d2fe6c9c1a9f19af6e96553c6d75366ab8f397bc232acd67d31476955fee94ff -size 21387252 diff --git a/qtdeclarative-opensource-src-5.9.2.tar.xz b/qtdeclarative-opensource-src-5.9.2.tar.xz new file mode 100644 index 0000000..3491a8f --- /dev/null +++ b/qtdeclarative-opensource-src-5.9.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d40fd4de9c73b9173d8308c0dc37952bf5c747d87ff221962dd2f848d820b08 +size 21435732 diff --git a/rebuild-qqmldata-propertycache-if-deleted.patch b/rebuild-qqmldata-propertycache-if-deleted.patch deleted file mode 100644 index 4412edc..0000000 --- a/rebuild-qqmldata-propertycache-if-deleted.patch +++ /dev/null @@ -1,40 +0,0 @@ -From ab5d4c78224c9ec79165e8890e5f8b8e838e0709 Mon Sep 17 00:00:00 2001 -From: David Edmundson -Date: Mon, 10 Jul 2017 17:26:59 +0100 -Subject: [PATCH] Rebuild QQmlData::propertyCache if deleted by another engine - -QQmlData is shared between engines, but the relevant QObjectWrapper is -not. Since 749a7212e903d8e8c6f256edb1836b9449cc7fe1 when a -QObjectWrapper is deleted it resets the shared QQmlData propertyCache. - -In most cases the propertyCache except when a property updated in an -existing binding in the first engine, where it currently asserts. - -Task-number: QTBUG-61681 -Change-Id: I6efdc506e5c7e30b95cda1be282afa9feb781cd2 -Reviewed-by: Simon Hausmann ---- - src/qml/qml/qqmlbinding.cpp | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/src/qml/qml/qqmlbinding.cpp b/src/qml/qml/qqmlbinding.cpp -index 62288a5..325f752 100644 ---- a/src/qml/qml/qqmlbinding.cpp -+++ b/src/qml/qml/qqmlbinding.cpp -@@ -515,7 +515,12 @@ void QQmlBinding::getPropertyData(QQmlPropertyData **propertyData, QQmlPropertyD - Q_ASSERT(propertyData); - - QQmlData *data = QQmlData::get(*m_target, false); -- Q_ASSERT(data && data->propertyCache); -+ Q_ASSERT(data); -+ -+ if (Q_UNLIKELY(!data->propertyCache)) { -+ data->propertyCache = QQmlEnginePrivate::get(context()->engine)->cache(m_target->metaObject()); -+ data->propertyCache->addref(); -+ } - - *propertyData = data->propertyCache->property(m_targetIndex.coreIndex()); - Q_ASSERT(*propertyData); --- -2.7.4 - diff --git a/revert-delay-deletion-of-qsgtextures.patch b/revert-delay-deletion-of-qsgtextures.patch index 87ebc4b..944754c 100644 --- a/revert-delay-deletion-of-qsgtextures.patch +++ b/revert-delay-deletion-of-qsgtextures.patch @@ -30,10 +30,10 @@ Reviewed-by: Gunnar Sletta src/quick/scenegraph/qsgwindowsrenderloop.cpp | 10 ++++++++++ 10 files changed, 33 insertions(+), 2 deletions(-) -Index: qtdeclarative-opensource-src-5.9.1/src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp +Index: qtdeclarative-opensource-src-5.9.2/src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp =================================================================== ---- qtdeclarative-opensource-src-5.9.1.orig/src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp -+++ qtdeclarative-opensource-src-5.9.1/src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp +--- qtdeclarative-opensource-src-5.9.2.orig/src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp ++++ qtdeclarative-opensource-src-5.9.2/src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp @@ -461,7 +461,6 @@ void QSGD3D12RenderLoop::renderWindow(QQ data.rc->initialize(nullptr); @@ -42,10 +42,10 @@ Index: qtdeclarative-opensource-src-5.9.1/src/plugins/scenegraph/d3d12/qsgd3d12r if (profileFrames) syncTime = renderTimer.nsecsElapsed(); -Index: qtdeclarative-opensource-src-5.9.1/src/plugins/scenegraph/d3d12/qsgd3d12threadedrenderloop.cpp +Index: qtdeclarative-opensource-src-5.9.2/src/plugins/scenegraph/d3d12/qsgd3d12threadedrenderloop.cpp =================================================================== ---- qtdeclarative-opensource-src-5.9.1.orig/src/plugins/scenegraph/d3d12/qsgd3d12threadedrenderloop.cpp -+++ qtdeclarative-opensource-src-5.9.1/src/plugins/scenegraph/d3d12/qsgd3d12threadedrenderloop.cpp +--- qtdeclarative-opensource-src-5.9.2.orig/src/plugins/scenegraph/d3d12/qsgd3d12threadedrenderloop.cpp ++++ qtdeclarative-opensource-src-5.9.2/src/plugins/scenegraph/d3d12/qsgd3d12threadedrenderloop.cpp @@ -410,7 +410,6 @@ bool QSGD3D12RenderThread::event(QEvent QQuickWindowPrivate *wd = QQuickWindowPrivate::get(wme->window); rc->initialize(nullptr); @@ -62,10 +62,10 @@ Index: qtdeclarative-opensource-src-5.9.1/src/plugins/scenegraph/d3d12/qsgd3d12t if (!hadRenderer && wd->renderer) { if (Q_UNLIKELY(debug_loop())) -Index: qtdeclarative-opensource-src-5.9.1/src/plugins/scenegraph/openvg/qsgopenvgrenderloop.cpp +Index: qtdeclarative-opensource-src-5.9.2/src/plugins/scenegraph/openvg/qsgopenvgrenderloop.cpp =================================================================== ---- qtdeclarative-opensource-src-5.9.1.orig/src/plugins/scenegraph/openvg/qsgopenvgrenderloop.cpp -+++ qtdeclarative-opensource-src-5.9.1/src/plugins/scenegraph/openvg/qsgopenvgrenderloop.cpp +--- qtdeclarative-opensource-src-5.9.2.orig/src/plugins/scenegraph/openvg/qsgopenvgrenderloop.cpp ++++ qtdeclarative-opensource-src-5.9.2/src/plugins/scenegraph/openvg/qsgopenvgrenderloop.cpp @@ -205,7 +205,6 @@ void QSGOpenVGRenderLoop::renderWindow(Q emit window->afterAnimating(); @@ -74,10 +74,10 @@ Index: qtdeclarative-opensource-src-5.9.1/src/plugins/scenegraph/openvg/qsgopenv if (profileFrames) syncTime = renderTimer.nsecsElapsed(); -Index: qtdeclarative-opensource-src-5.9.1/src/quick/items/qquickrendercontrol.cpp +Index: qtdeclarative-opensource-src-5.9.2/src/quick/items/qquickrendercontrol.cpp =================================================================== ---- qtdeclarative-opensource-src-5.9.1.orig/src/quick/items/qquickrendercontrol.cpp -+++ qtdeclarative-opensource-src-5.9.1/src/quick/items/qquickrendercontrol.cpp +--- qtdeclarative-opensource-src-5.9.2.orig/src/quick/items/qquickrendercontrol.cpp ++++ qtdeclarative-opensource-src-5.9.2/src/quick/items/qquickrendercontrol.cpp @@ -284,7 +284,6 @@ bool QQuickRenderControl::sync() QQuickWindowPrivate *cd = QQuickWindowPrivate::get(d->window); @@ -102,10 +102,10 @@ Index: qtdeclarative-opensource-src-5.9.1/src/quick/items/qquickrendercontrol.cp render(); softwareRenderer->setCurrentPaintDevice(prevDev); } -Index: qtdeclarative-opensource-src-5.9.1/src/quick/items/qquickwindow.cpp +Index: qtdeclarative-opensource-src-5.9.2/src/quick/items/qquickwindow.cpp =================================================================== ---- qtdeclarative-opensource-src-5.9.1.orig/src/quick/items/qquickwindow.cpp -+++ qtdeclarative-opensource-src-5.9.1/src/quick/items/qquickwindow.cpp +--- qtdeclarative-opensource-src-5.9.2.orig/src/quick/items/qquickwindow.cpp ++++ qtdeclarative-opensource-src-5.9.2/src/quick/items/qquickwindow.cpp @@ -432,8 +432,10 @@ void QQuickWindowPrivate::syncSceneGraph emit q->afterSynchronizing(); @@ -117,10 +117,10 @@ Index: qtdeclarative-opensource-src-5.9.1/src/quick/items/qquickwindow.cpp void QQuickWindowPrivate::renderSceneGraph(const QSize &size) { QML_MEMORY_SCOPE_STRING("SceneGraph"); -Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp +Index: qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp =================================================================== ---- qtdeclarative-opensource-src-5.9.1.orig/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp -+++ qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp +--- qtdeclarative-opensource-src-5.9.2.orig/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp ++++ qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp @@ -149,7 +149,6 @@ void QSGSoftwareRenderLoop::renderWindow emit window->afterAnimating(); @@ -129,10 +129,10 @@ Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/adaptations/softw if (profileFrames) syncTime = renderTimer.nsecsElapsed(); -Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/adaptations/software/qsgsoftwarethreadedrenderloop.cpp +Index: qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/adaptations/software/qsgsoftwarethreadedrenderloop.cpp =================================================================== ---- qtdeclarative-opensource-src-5.9.1.orig/src/quick/scenegraph/adaptations/software/qsgsoftwarethreadedrenderloop.cpp -+++ qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/adaptations/software/qsgsoftwarethreadedrenderloop.cpp +--- qtdeclarative-opensource-src-5.9.2.orig/src/quick/scenegraph/adaptations/software/qsgsoftwarethreadedrenderloop.cpp ++++ qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/adaptations/software/qsgsoftwarethreadedrenderloop.cpp @@ -330,7 +330,6 @@ bool QSGSoftwareRenderThread::event(QEve softwareRenderer->setBackingStore(backingStore); rc->initialize(nullptr); @@ -149,11 +149,11 @@ Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/adaptations/softw if (!hadRenderer && wd->renderer) { qCDebug(QSG_RASTER_LOG_RENDERLOOP, "RT - created renderer"); -Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgrenderloop.cpp +Index: qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/qsgrenderloop.cpp =================================================================== ---- qtdeclarative-opensource-src-5.9.1.orig/src/quick/scenegraph/qsgrenderloop.cpp -+++ qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgrenderloop.cpp -@@ -380,16 +380,6 @@ void QSGGuiThreadRenderLoop::renderWindo +--- qtdeclarative-opensource-src-5.9.2.orig/src/quick/scenegraph/qsgrenderloop.cpp ++++ qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/qsgrenderloop.cpp +@@ -381,16 +381,6 @@ void QSGGuiThreadRenderLoop::renderWindo bool alsoSwap = data.updatePending; data.updatePending = false; @@ -170,7 +170,7 @@ Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgrenderloop.cpp if (!current) return; -@@ -417,8 +407,6 @@ void QSGGuiThreadRenderLoop::renderWindo +@@ -418,8 +408,6 @@ void QSGGuiThreadRenderLoop::renderWindo emit window->afterAnimating(); cd->syncSceneGraph(); @@ -179,11 +179,11 @@ Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgrenderloop.cpp if (profileFrames) syncTime = renderTimer.nsecsElapsed(); -Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgthreadedrenderloop.cpp +Index: qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/qsgthreadedrenderloop.cpp =================================================================== ---- qtdeclarative-opensource-src-5.9.1.orig/src/quick/scenegraph/qsgthreadedrenderloop.cpp -+++ qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgthreadedrenderloop.cpp -@@ -425,7 +425,6 @@ bool QSGRenderThread::event(QEvent *e) +--- qtdeclarative-opensource-src-5.9.2.orig/src/quick/scenegraph/qsgthreadedrenderloop.cpp ++++ qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/qsgthreadedrenderloop.cpp +@@ -432,7 +432,6 @@ bool QSGRenderThread::event(QEvent *e) qCDebug(QSG_LOG_RENDERLOOP) << QSG_RT_PAD << "- sync scene graph"; QQuickWindowPrivate *d = QQuickWindowPrivate::get(ce->window); d->syncSceneGraph(); @@ -191,11 +191,11 @@ Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgthreadedrender qCDebug(QSG_LOG_RENDERLOOP) << QSG_RT_PAD << "- rendering scene graph"; QQuickWindowPrivate::get(ce->window)->renderSceneGraph(ce->window->size()); -Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgwindowsrenderloop.cpp +Index: qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/qsgwindowsrenderloop.cpp =================================================================== ---- qtdeclarative-opensource-src-5.9.1.orig/src/quick/scenegraph/qsgwindowsrenderloop.cpp -+++ qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgwindowsrenderloop.cpp -@@ -445,14 +445,6 @@ void QSGWindowsRenderLoop::renderWindow( +--- qtdeclarative-opensource-src-5.9.2.orig/src/quick/scenegraph/qsgwindowsrenderloop.cpp ++++ qtdeclarative-opensource-src-5.9.2/src/quick/scenegraph/qsgwindowsrenderloop.cpp +@@ -446,14 +446,6 @@ void QSGWindowsRenderLoop::renderWindow( } } @@ -210,7 +210,7 @@ Index: qtdeclarative-opensource-src-5.9.1/src/quick/scenegraph/qsgwindowsrenderl d->flushFrameSynchronousEvents(); // Event delivery or processing has caused the window to stop rendering. if (!windowData(window)) -@@ -472,8 +464,6 @@ void QSGWindowsRenderLoop::renderWindow( +@@ -473,8 +465,6 @@ void QSGWindowsRenderLoop::renderWindow( RLDEBUG(" - syncing"); d->syncSceneGraph(); diff --git a/support-non-integer-pixel-ratios-qquickwidget.patch b/support-non-integer-pixel-ratios-qquickwidget.patch deleted file mode 100644 index df487c5..0000000 --- a/support-non-integer-pixel-ratios-qquickwidget.patch +++ /dev/null @@ -1,73 +0,0 @@ -From dfce0a8feceeb7156eba6ac5d8d3521e3009a583 Mon Sep 17 00:00:00 2001 -From: Allan Sandfeld Jensen -Date: Wed, 21 Jun 2017 09:03:22 +0200 -Subject: [PATCH] Support non-integer pixel-ratio in QQuickWidget - -Non-integer pixel-ratios always resulted in blurry rendering when -QQuickWidget was used, but not with QQuickWindow. Fixed by reading qreal -accessor of devicePixelRatio instead. - -Change-Id: I49f5efcf2da2efc090c00017e68c99c857cd84ef -Task-number: QTBUG-61502 -Reviewed-by: Laszlo Agocs ---- - src/quickwidgets/qquickwidget.cpp | 14 ++++++++------ - 1 file changed, 8 insertions(+), 6 deletions(-) - -Index: qtdeclarative-opensource-src-5.9.0/src/quickwidgets/qquickwidget.cpp -=================================================================== ---- qtdeclarative-opensource-src-5.9.0.orig/src/quickwidgets/qquickwidget.cpp -+++ qtdeclarative-opensource-src-5.9.0/src/quickwidgets/qquickwidget.cpp -@@ -913,9 +913,9 @@ void QQuickWidget::createFramebufferObje - d->offscreenWindow->setGeometry(globalPos.x(), globalPos.y(), width(), height()); - - if (d->useSoftwareRenderer) { -- const QSize imageSize = size() * devicePixelRatio(); -+ const QSize imageSize = size() * devicePixelRatioF(); - d->softwareImage = QImage(imageSize, QImage::Format_ARGB32_Premultiplied); -- d->softwareImage.setDevicePixelRatio(devicePixelRatio()); -+ d->softwareImage.setDevicePixelRatio(devicePixelRatioF()); - return; - } - -@@ -960,7 +960,7 @@ void QQuickWidget::createFramebufferObje - format.setInternalTextureFormat(GL_SRGB8_ALPHA8_EXT); - #endif - -- const QSize fboSize = size() * devicePixelRatio(); -+ const QSize fboSize = size() * devicePixelRatioF(); - - // Could be a simple hide - show, in which case the previous fbo is just fine. - if (!d->fbo || d->fbo->size() != fboSize) { -@@ -1181,7 +1181,7 @@ void QQuickWidget::resizeEvent(QResizeEv - // Software Renderer - if (d->useSoftwareRenderer) { - needsSync = true; -- if (d->softwareImage.size() != size() * devicePixelRatio()) { -+ if (d->softwareImage.size() != size() * devicePixelRatioF()) { - createFramebufferObject(); - } - } else { -@@ -1191,7 +1191,7 @@ void QQuickWidget::resizeEvent(QResizeEv - // during hide - resize - show sequences and also during application exit. - if (!d->fbo && !d->offscreenWindow->openglContext()) - return; -- if (!d->fbo || d->fbo->size() != size() * devicePixelRatio()) { -+ if (!d->fbo || d->fbo->size() != size() * devicePixelRatioF()) { - needsSync = true; - createFramebufferObject(); - } -@@ -1604,10 +1604,12 @@ void QQuickWidget::paintEvent(QPaintEven - //Paint everything - painter.drawImage(rect(), d->softwareImage); - } else { -+ QTransform transform; -+ transform.scale(devicePixelRatioF(), devicePixelRatioF()); - //Paint only the updated areas - const auto rects = d->updateRegion.rects(); - for (auto targetRect : rects) { -- auto sourceRect = QRect(targetRect.topLeft() * devicePixelRatio(), targetRect.size() * devicePixelRatio()); -+ auto sourceRect = transform.mapRect(QRectF(targetRect)); - painter.drawImage(targetRect, d->softwareImage, sourceRect); - } - d->updateRegion = QRegion();