From 7e2153e89af537af03759c650b52bede909b9b64 Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Wed, 14 Dec 2016 07:51:39 -0600 Subject: [PATCH] Revert "unwanted cache flush in Freetype engine (#1400417, QTBUG-49452)" This reverts commit 81d6fcc4cada4b07744837d3df9a555bc78a7950. --- ...anted-cache-flush-in-Freetype-engine.patch | 61 ------------------- qt5-qtbase.spec | 8 +-- 2 files changed, 1 insertion(+), 68 deletions(-) delete mode 100644 0447-REG-Fix-unwanted-cache-flush-in-Freetype-engine.patch diff --git a/0447-REG-Fix-unwanted-cache-flush-in-Freetype-engine.patch b/0447-REG-Fix-unwanted-cache-flush-in-Freetype-engine.patch deleted file mode 100644 index be0c0e3..0000000 --- a/0447-REG-Fix-unwanted-cache-flush-in-Freetype-engine.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 6f423555eba55ccdf7287071e10576bc1b687fd2 Mon Sep 17 00:00:00 2001 -From: Eskil Abrahamsen Blomfeldt -Date: Mon, 1 Aug 2016 13:39:53 +0200 -Subject: [PATCH 447/783] REG: Fix unwanted cache flush in Freetype engine - -The Freetype cache was almost completely disabled by -134c6db8587a8ce156d4fa31ffa62605821851b2 because after that -change, the lockedAlphaMapForGlyph() function would no longer -cut off early for empty glyphs like spaces, but rather go -through all alpha map functions before it realized that there -was nothing to render. This would in turn invalidate the cache -for every empty glyph, causing all glyphs to be rerendered for -every isolated word. - -This change adds back a cut off. This is only needed in the -lockedAlphaMapForGlyph() function, since the superclass implementation -of the other alpha map functions already contains a cut off for -width/height == 0. - -[ChangeLog][Qt Gui][Text] Fixed a performance regression in Freetype -engine that was introduced in Qt 5.5. - -Change-Id: I381285939909e99cc5fb5f3497fecf9fa871f29a -Task-number: QTBUG-49452 -Reviewed-by: Simon Hausmann ---- - src/gui/text/qfontengine_ft.cpp | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/src/gui/text/qfontengine_ft.cpp b/src/gui/text/qfontengine_ft.cpp -index 4de41df..7c878da 100644 ---- a/src/gui/text/qfontengine_ft.cpp -+++ b/src/gui/text/qfontengine_ft.cpp -@@ -1716,7 +1716,7 @@ glyph_metrics_t QFontEngineFT::alphaMapBoundingBox(glyph_t glyph, QFixed subPixe - - static inline QImage alphaMapFromGlyphData(QFontEngineFT::Glyph *glyph, QFontEngine::GlyphFormat glyphFormat) - { -- if (glyph == Q_NULLPTR) -+ if (glyph == Q_NULLPTR || glyph->height == 0 || glyph->width == 0) - return QImage(); - - QImage::Format format = QImage::Format_Invalid; -@@ -1764,11 +1764,15 @@ QImage *QFontEngineFT::lockedAlphaMapForGlyph(glyph_t glyphIndex, QFixed subPixe - - currentlyLockedAlphaMap = alphaMapFromGlyphData(glyph, neededFormat); - -+ const bool glyphHasGeometry = glyph != Q_NULLPTR && glyph->height != 0 && glyph->width != 0; - if (!cacheEnabled && glyph != &emptyGlyph) { - currentlyLockedAlphaMap = currentlyLockedAlphaMap.copy(); - delete glyph; - } - -+ if (!glyphHasGeometry) -+ return Q_NULLPTR; -+ - if (currentlyLockedAlphaMap.isNull()) - return QFontEngine::lockedAlphaMapForGlyph(glyphIndex, subPixelPosition, neededFormat, t, offset); - --- -2.7.4 - diff --git a/qt5-qtbase.spec b/qt5-qtbase.spec index 66ac713..3933dee 100644 --- a/qt5-qtbase.spec +++ b/qt5-qtbase.spec @@ -62,7 +62,7 @@ BuildRequires: pkgconfig(libsystemd) Name: qt5-qtbase Summary: Qt5 - QtBase components Version: 5.7.0 -Release: 7%{?dist} +Release: 6%{?dist} # See LGPL_EXCEPTIONS.txt, for exception details License: LGPLv2 with exceptions or GPLv3 with exceptions @@ -113,7 +113,6 @@ Patch60: qtbase-opensource-src-5.7.1-moc_system_defines.patch Patch61: qt5-qtbase-cxxflag.patch ## upstream patches -Patch447: 0447-REG-Fix-unwanted-cache-flush-in-Freetype-engine.patch # Do not check any files in %%{_qt5_plugindir}/platformthemes/ for requires. # Those themes are there for platform integration. If the required libraries are @@ -345,8 +344,6 @@ Qt5 libraries used for drawing widgets and OpenGL items. %patch60 -p1 -b .moc_system_defines %patch61 -p1 -b .qt5-qtbase-cxxflag -%patch447 -p1 -b .0447 - %if 0%{?inject_optflags} ## adjust $RPM_OPT_FLAGS @@ -938,9 +935,6 @@ fi %changelog -* Tue Dec 13 2016 Rex Dieter - 5.7.0-7 -- unwanted cache flush in Freetype engine (#1400417, QTBUG-49452) - * Mon Dec 12 2016 Vitaly Zaitsev - 5.7.0-6 - Backported QTBUG-53071 patch to resolve problem with latest tzdata. - Fixed Source URL.