5.6.0-4
- backport upstream fixes - drop -fno-delete-null-pointer-checks hack (included in qt5-rpm-macros as needed now)
This commit is contained in:
parent
3c01417b2f
commit
51873329cb
@ -0,0 +1,33 @@
|
|||||||
|
From 9783991b615484d2926e9648b10ea090af81d93f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mitch Curtis <mitch.curtis@theqtcompany.com>
|
||||||
|
Date: Wed, 3 Feb 2016 12:57:05 +0100
|
||||||
|
Subject: [PATCH 08/61] Fix crash when Canvas has negative width or height
|
||||||
|
|
||||||
|
m_fbo is null when using a threaded render loop.
|
||||||
|
|
||||||
|
Change-Id: I297ba651f9605f1718dbe9d09bd30e9682fb8401
|
||||||
|
Task-number: QTBUG-50085
|
||||||
|
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
||||||
|
---
|
||||||
|
src/quick/items/context2d/qquickcontext2dtexture.cpp | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/quick/items/context2d/qquickcontext2dtexture.cpp b/src/quick/items/context2d/qquickcontext2dtexture.cpp
|
||||||
|
index 73b0b55..5ac971d 100644
|
||||||
|
--- a/src/quick/items/context2d/qquickcontext2dtexture.cpp
|
||||||
|
+++ b/src/quick/items/context2d/qquickcontext2dtexture.cpp
|
||||||
|
@@ -599,6 +599,11 @@ QPaintDevice* QQuickContext2DFBOTexture::beginPainting()
|
||||||
|
void QQuickContext2DFBOTexture::endPainting()
|
||||||
|
{
|
||||||
|
QQuickContext2DTexture::endPainting();
|
||||||
|
+
|
||||||
|
+ // There may not be an FBO due to zero width or height.
|
||||||
|
+ if (!m_fbo)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
if (m_multisampledFbo)
|
||||||
|
QOpenGLFramebufferObject::blitFramebuffer(m_fbo, m_multisampledFbo);
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.3
|
||||||
|
|
60
0019-Revert-Fix-crash-on-QQmlEngine-destruction.patch
Normal file
60
0019-Revert-Fix-crash-on-QQmlEngine-destruction.patch
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
From 427ca15418c05e628bae3451c263be198e721ba9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Robin Burchell <robin.burchell@viroteck.net>
|
||||||
|
Date: Wed, 17 Feb 2016 01:35:29 +0100
|
||||||
|
Subject: [PATCH 19/61] Revert "Fix crash on QQmlEngine destruction."
|
||||||
|
|
||||||
|
This reverts commit 2e75be5f64fb21cbbdff3353dbd507c2ca26946a.
|
||||||
|
|
||||||
|
This patch was originally written by Andrew den Exter in
|
||||||
|
222e06bf4ed509e72c1533cbe1d4859ca96933f3, externally from the main Qt tree. I
|
||||||
|
upstreamed this as part of our porting efforts.
|
||||||
|
|
||||||
|
Some time later, this was accidentally reverted in
|
||||||
|
2e75be5f64fb21cbbdff3353dbd507c2ca26946a: we can't go back in time to examine
|
||||||
|
exactly what happened, but presumably Andrew didn't notice that I had upstreamed
|
||||||
|
this, attempted to apply the patch and ignored the "already applied" warning by
|
||||||
|
accident - and continued on dutifully with the patch accidentally reverted.
|
||||||
|
|
||||||
|
This change is correct, though, and is thus reinstated.
|
||||||
|
|
||||||
|
Change-Id: Idfe6ab39ad011f0401de25fe056aa3eb3fb8b424
|
||||||
|
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
|
||||||
|
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
||||||
|
---
|
||||||
|
src/qml/qml/qqmlengine.cpp | 4 ++--
|
||||||
|
src/qml/qml/qqmlengine_p.h | 3 +--
|
||||||
|
2 files changed, 3 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp
|
||||||
|
index 109cfac..2cfe468 100644
|
||||||
|
--- a/src/qml/qml/qqmlengine.cpp
|
||||||
|
+++ b/src/qml/qml/qqmlengine.cpp
|
||||||
|
@@ -598,8 +598,8 @@ QQmlEnginePrivate::QQmlEnginePrivate(QQmlEngine *e)
|
||||||
|
workerScriptEngine(0),
|
||||||
|
activeObjectCreator(0),
|
||||||
|
networkAccessManager(0), networkAccessManagerFactory(0), urlInterceptor(0),
|
||||||
|
- scarceResourcesRefCount(0), typeLoader(e), importDatabase(e), uniqueId(1),
|
||||||
|
- incubatorCount(0), incubationController(0)
|
||||||
|
+ scarceResourcesRefCount(0), importDatabase(e), typeLoader(e),
|
||||||
|
+ uniqueId(1), incubatorCount(0), incubationController(0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/src/qml/qml/qqmlengine_p.h b/src/qml/qml/qqmlengine_p.h
|
||||||
|
index 26ee3bd..072a6c4 100644
|
||||||
|
--- a/src/qml/qml/qqmlengine_p.h
|
||||||
|
+++ b/src/qml/qml/qqmlengine_p.h
|
||||||
|
@@ -166,9 +166,8 @@ public:
|
||||||
|
void referenceScarceResources();
|
||||||
|
void dereferenceScarceResources();
|
||||||
|
|
||||||
|
- QQmlTypeLoader typeLoader;
|
||||||
|
QQmlImportDatabase importDatabase;
|
||||||
|
-
|
||||||
|
+ QQmlTypeLoader typeLoader;
|
||||||
|
|
||||||
|
QString offlineStoragePath;
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.3
|
||||||
|
|
30
0029-Avoid-div-by-zero-when-nothing-is-rendered.patch
Normal file
30
0029-Avoid-div-by-zero-when-nothing-is-rendered.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
From e01bed44bca9bd0919f70dfc14f8297415d61bd9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gunnar Sletta <gunnar@sletta.org>
|
||||||
|
Date: Mon, 15 Feb 2016 08:02:50 +0100
|
||||||
|
Subject: [PATCH 29/61] Avoid div-by-zero when nothing is rendered.
|
||||||
|
|
||||||
|
Change-Id: I3eb57baf1812f831335429cc7d2b4424f3cfa785
|
||||||
|
Task-number: QTBUG-50929
|
||||||
|
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
||||||
|
---
|
||||||
|
src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp | 4 +++-
|
||||||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
|
||||||
|
index b1792d2..dd1ff14 100644
|
||||||
|
--- a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
|
||||||
|
+++ b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
|
||||||
|
@@ -2654,7 +2654,9 @@ void Renderer::render()
|
||||||
|
if (m_alphaBatches.size())
|
||||||
|
std::sort(&m_alphaBatches.first(), &m_alphaBatches.last() + 1, qsg_sort_batch_increasing_order);
|
||||||
|
|
||||||
|
- m_zRange = 1.0 / (m_nextRenderOrder);
|
||||||
|
+ m_zRange = m_nextRenderOrder != 0
|
||||||
|
+ ? 1.0 / (m_nextRenderOrder)
|
||||||
|
+ : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Q_UNLIKELY(debug_render())) timeSorting = timer.restart();
|
||||||
|
--
|
||||||
|
1.9.3
|
||||||
|
|
116
Check-for-NULL-from-glGetString.patch
Normal file
116
Check-for-NULL-from-glGetString.patch
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
From d4efd5ab810e92202efe672be29136324dd2a3f9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?D=C4=81vis=20Mos=C4=81ns?= <davispuh@gmail.com>
|
||||||
|
Date: Mon, 28 Dec 2015 05:43:18 +0200
|
||||||
|
Subject: [PATCH] Check for NULL from glGetString
|
||||||
|
|
||||||
|
glGetString can return NULL pointer in case of error
|
||||||
|
so check for it before using.
|
||||||
|
|
||||||
|
Change-Id: Ia07424c8f2b3ce6dce675514900a509e3ef3b739
|
||||||
|
---
|
||||||
|
src/particles/qquickimageparticle.cpp | 6 ++++--
|
||||||
|
src/quick/scenegraph/qsgcontext.cpp | 22 ++++++++++++++++------
|
||||||
|
.../qsgdefaultdistancefieldglyphcache.cpp | 8 +++++---
|
||||||
|
src/quick/scenegraph/util/qsgatlastexture.cpp | 4 ++--
|
||||||
|
4 files changed, 27 insertions(+), 13 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/particles/qquickimageparticle.cpp b/src/particles/qquickimageparticle.cpp
|
||||||
|
index d78a350..b54861e 100644
|
||||||
|
--- a/src/particles/qquickimageparticle.cpp
|
||||||
|
+++ b/src/particles/qquickimageparticle.cpp
|
||||||
|
@@ -1276,14 +1276,16 @@ void QQuickImageParticle::finishBuildParticleNodes(QSGNode** node)
|
||||||
|
// OS X 10.8.3 introduced a bug in the AMD drivers, for at least the 2011 macbook pros,
|
||||||
|
// causing point sprites who read gl_PointCoord in the frag shader to come out as
|
||||||
|
// green-red blobs.
|
||||||
|
- if (perfLevel < Deformable && strstr((char *) glGetString(GL_VENDOR), "ATI")) {
|
||||||
|
+ const char *vendor = (const char *) glGetString(GL_VENDOR);
|
||||||
|
+ if (perfLevel < Deformable && vendor && strstr(vendor, "ATI")) {
|
||||||
|
perfLevel = Deformable;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef Q_OS_LINUX
|
||||||
|
// Nouveau drivers can potentially freeze a machine entirely when taking the point-sprite path.
|
||||||
|
- if (perfLevel < Deformable && strstr((const char *) glGetString(GL_VENDOR), "nouveau"))
|
||||||
|
+ const char *vendor = (const char *) glGetString(GL_VENDOR);
|
||||||
|
+ if (perfLevel < Deformable && vendor && strstr(vendor, "nouveau"))
|
||||||
|
perfLevel = Deformable;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
diff --git a/src/quick/scenegraph/qsgcontext.cpp b/src/quick/scenegraph/qsgcontext.cpp
|
||||||
|
index dd6977e..43d549f 100644
|
||||||
|
--- a/src/quick/scenegraph/qsgcontext.cpp
|
||||||
|
+++ b/src/quick/scenegraph/qsgcontext.cpp
|
||||||
|
@@ -624,14 +624,24 @@ void QSGRenderContext::initialize(QOpenGLContext *context)
|
||||||
|
m_sg->renderContextInitialized(this);
|
||||||
|
|
||||||
|
#ifdef Q_OS_LINUX
|
||||||
|
+ while (funcs->glGetError() != GL_NO_ERROR);
|
||||||
|
+
|
||||||
|
const char *vendor = (const char *) funcs->glGetString(GL_VENDOR);
|
||||||
|
- if (strstr(vendor, "nouveau"))
|
||||||
|
- m_brokenIBOs = true;
|
||||||
|
const char *renderer = (const char *) funcs->glGetString(GL_RENDERER);
|
||||||
|
- if (strstr(renderer, "llvmpipe"))
|
||||||
|
- m_serializedRender = true;
|
||||||
|
- if (strstr(vendor, "Hisilicon Technologies") && strstr(renderer, "Immersion.16"))
|
||||||
|
- m_brokenIBOs = true;
|
||||||
|
+
|
||||||
|
+ if (vendor && renderer) {
|
||||||
|
+ if (strstr(vendor, "nouveau"))
|
||||||
|
+ m_brokenIBOs = true;
|
||||||
|
+ if (strstr(renderer, "llvmpipe"))
|
||||||
|
+ m_serializedRender = true;
|
||||||
|
+ if (strstr(vendor, "Hisilicon Technologies") && strstr(renderer, "Immersion.16"))
|
||||||
|
+ m_brokenIBOs = true;
|
||||||
|
+ } else {
|
||||||
|
+ GLenum err;
|
||||||
|
+ while ((err = funcs->glGetError()) != GL_NO_ERROR) {
|
||||||
|
+ qWarning("QSGRenderContext::initialize: GL error %x from glGetString", err);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
emit initialized();
|
||||||
|
diff --git a/src/quick/scenegraph/qsgdefaultdistancefieldglyphcache.cpp b/src/quick/scenegraph/qsgdefaultdistancefieldglyphcache.cpp
|
||||||
|
index dcc485c..43e234b 100644
|
||||||
|
--- a/src/quick/scenegraph/qsgdefaultdistancefieldglyphcache.cpp
|
||||||
|
+++ b/src/quick/scenegraph/qsgdefaultdistancefieldglyphcache.cpp
|
||||||
|
@@ -488,9 +488,11 @@ bool QSGDefaultDistanceFieldGlyphCache::useTextureUploadWorkaround() const
|
||||||
|
static bool set = false;
|
||||||
|
static bool useWorkaround = false;
|
||||||
|
if (!set) {
|
||||||
|
- useWorkaround = qstrcmp(reinterpret_cast<const char*>(m_funcs->glGetString(GL_RENDERER)),
|
||||||
|
- "Mali-400 MP") == 0;
|
||||||
|
- set = true;
|
||||||
|
+ const char *renderer = reinterpret_cast<const char*>(m_funcs->glGetString(GL_RENDERER));
|
||||||
|
+ if (renderer) {
|
||||||
|
+ useWorkaround = qstrcmp(renderer, "Mali-400 MP") == 0;
|
||||||
|
+ set = true;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
return useWorkaround;
|
||||||
|
}
|
||||||
|
diff --git a/src/quick/scenegraph/util/qsgatlastexture.cpp b/src/quick/scenegraph/util/qsgatlastexture.cpp
|
||||||
|
index 8e8e870..d726907 100644
|
||||||
|
--- a/src/quick/scenegraph/util/qsgatlastexture.cpp
|
||||||
|
+++ b/src/quick/scenegraph/util/qsgatlastexture.cpp
|
||||||
|
@@ -150,13 +150,13 @@ Atlas::Atlas(const QSize &size)
|
||||||
|
wrongfullyReportsBgra8888Support = false;
|
||||||
|
|
||||||
|
const char *ext = (const char *) QOpenGLContext::currentContext()->functions()->glGetString(GL_EXTENSIONS);
|
||||||
|
- if (!wrongfullyReportsBgra8888Support
|
||||||
|
+ if (!wrongfullyReportsBgra8888Support && ext
|
||||||
|
&& (strstr(ext, "GL_EXT_bgra")
|
||||||
|
|| strstr(ext, "GL_EXT_texture_format_BGRA8888")
|
||||||
|
|| strstr(ext, "GL_IMG_texture_format_BGRA8888"))) {
|
||||||
|
m_internalFormat = m_externalFormat = GL_BGRA;
|
||||||
|
#ifdef Q_OS_IOS
|
||||||
|
- } else if (strstr(ext, "GL_APPLE_texture_format_BGRA8888")) {
|
||||||
|
+ } else if (ext && strstr(ext, "GL_APPLE_texture_format_BGRA8888")) {
|
||||||
|
m_internalFormat = GL_RGBA;
|
||||||
|
m_externalFormat = GL_BGRA;
|
||||||
|
#endif // IOS
|
||||||
|
--
|
||||||
|
1.9.3
|
||||||
|
|
@ -17,7 +17,7 @@
|
|||||||
Summary: Qt5 - QtDeclarative component
|
Summary: Qt5 - QtDeclarative component
|
||||||
Name: qt5-%{qt_module}
|
Name: qt5-%{qt_module}
|
||||||
Version: 5.6.0
|
Version: 5.6.0
|
||||||
Release: 3%{?prerelease:.%{prerelease}}%{?dist}
|
Release: 4%{?prerelease:.%{prerelease}}%{?dist}
|
||||||
|
|
||||||
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
|
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
|
||||||
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
||||||
@ -33,6 +33,15 @@ Patch1: qtdeclarative-opensource-src-5.5.0-no_sse2.patch
|
|||||||
# https://bugs.kde.org/show_bug.cgi?id=348385
|
# https://bugs.kde.org/show_bug.cgi?id=348385
|
||||||
Patch2: qtdeclarative-QQuickShaderEffectSource_deadlock.patch
|
Patch2: qtdeclarative-QQuickShaderEffectSource_deadlock.patch
|
||||||
|
|
||||||
|
## upstream patches
|
||||||
|
Patch8: 0008-Fix-crash-when-Canvas-has-negative-width-or-height.patch
|
||||||
|
Patch19: 0019-Revert-Fix-crash-on-QQmlEngine-destruction.patch
|
||||||
|
Patch29: 0029-Avoid-div-by-zero-when-nothing-is-rendered.patch
|
||||||
|
|
||||||
|
## upstream patches under review
|
||||||
|
# Check-for-NULL-from-glGetStrin
|
||||||
|
Patch500: Check-for-NULL-from-glGetString.patch
|
||||||
|
|
||||||
Obsoletes: qt5-qtjsbackend < 5.2.0
|
Obsoletes: qt5-qtjsbackend < 5.2.0
|
||||||
|
|
||||||
BuildRequires: cmake
|
BuildRequires: cmake
|
||||||
@ -85,6 +94,12 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
|
|||||||
%patch1 -p1 -b .no_sse2
|
%patch1 -p1 -b .no_sse2
|
||||||
%patch2 -p1 -b .QQuickShaderEffectSource_deadlock
|
%patch2 -p1 -b .QQuickShaderEffectSource_deadlock
|
||||||
|
|
||||||
|
%patch8 -p1 -b .0008
|
||||||
|
%patch19 -p1 -b .0019
|
||||||
|
%patch29 -p1 -b .0029
|
||||||
|
|
||||||
|
%patch500 -p1 -b .Check-for-NULL-from-glGetString
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
@ -216,6 +231,10 @@ popd
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Mar 25 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.0-4
|
||||||
|
- backport upstream fixes
|
||||||
|
- drop -fno-delete-null-pointer-checks hack (included in qt5-rpm-macros as needed now)
|
||||||
|
|
||||||
* Sat Mar 19 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.0-3
|
* Sat Mar 19 2016 Rex Dieter <rdieter@fedoraproject.org> - 5.6.0-3
|
||||||
- BR: cmake (cmake autoprovides)
|
- BR: cmake (cmake autoprovides)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user