workaround QQuickShaderEffectSource::updatePaintNode deadlock (#1237269, kde#348385)

This commit is contained in:
Rex Dieter 2015-10-24 08:13:30 -05:00
parent 1da7cc83f6
commit 81c710d651
2 changed files with 25 additions and 1 deletions

View File

@ -17,7 +17,7 @@
Summary: Qt5 - QtDeclarative component
Name: qt5-%{qt_module}
Version: 5.5.1
Release: 2%{?dist}
Release: 3%{?dist}
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
License: LGPLv2 with exceptions or GPLv3 with exceptions
@ -28,6 +28,11 @@ Source0: http://download.qt.io/official_releases/qt/5.5/%{version}%{?prerelease:
# https://codereview.qt-project.org/#change,73710
Patch1: qtdeclarative-opensource-src-5.5.0-no_sse2.patch
# workaround for possible deadlock condition in QQuickShaderEffectSource
# https://bugzilla.redhat.com/show_bug.cgi?id=1237269
# https://bugs.kde.org/show_bug.cgi?id=348385
Patch2: qtdeclarative-QQuickShaderEffectSource_deadlock.patch
Obsoletes: qt5-qtjsbackend < 5.2.0
BuildRequires: qt5-qtbase-devel >= %{version}
@ -76,6 +81,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%prep
%setup -q -n %{qt_module}-opensource-src-%{version}%{?prerelease:-%{prerelease}}
%patch1 -p1 -b .no_sse2
%patch2 -p1 -b .QQuickShaderEffectSource_deadlock
%build
@ -202,6 +208,9 @@ popd
%changelog
* Sat Oct 24 2015 Rex Dieter <rdieter@fedoraproject.org> 5.5.1-3
- workaround QQuickShaderEffectSource::updatePaintNode deadlock (#1237269, kde#348385)
* Thu Oct 15 2015 Helio Chissini de Castro <helio@kde.org> - 5.5.1-2
- Update to final release 5.5.1

View File

@ -0,0 +1,15 @@
--- qtdeclarative-opensource-src-5.4.2/src/quick/items/qquickshadereffectsource.cpp 2015-06-30 07:30:51.938794778 +0200
+++ qtdeclarative-opensource-src-5.4.2/src/quick/items/qquickshadereffectsource.cpp.orig 2015-06-30 07:29:47.019163937 +0200
@@ -632,8 +632,12 @@
const QSize minTextureSize = d->sceneGraphContext()->minimumFBOSize();
// Keep power-of-two by doubling the size.
+ if (textureSize.width() < 1)
+ textureSize.rwidth() = 1;
while (textureSize.width() < minTextureSize.width())
textureSize.rwidth() *= 2;
+ if (textureSize.height() < 1)
+ textureSize.rheight() = 1;
while (textureSize.height() < minTextureSize.height())
textureSize.rheight() *= 2;