diff options
author | Andreas K. Hüttel <dilfridge@gentoo.org> | 2011-09-13 20:12:33 +0000 |
---|---|---|
committer | Andreas K. Hüttel <dilfridge@gentoo.org> | 2011-09-13 20:12:33 +0000 |
commit | f84d49590d5e72ff5709b8096184f0439c4a0b02 (patch) | |
tree | 82b5f0dd4a485c6a45b20c364c36694e90ca2561 /kde-base | |
parent | Take over as maintainer. (diff) | |
download | gentoo-2-f84d49590d5e72ff5709b8096184f0439c4a0b02.tar.gz gentoo-2-f84d49590d5e72ff5709b8096184f0439c4a0b02.tar.bz2 gentoo-2-f84d49590d5e72ff5709b8096184f0439c4a0b02.zip |
Add serious performance improvement from upstream
(Portage version: 2.1.10.15/cvs/Linux x86_64)
Diffstat (limited to 'kde-base')
-rw-r--r-- | kde-base/kwin/ChangeLog | 8 | ||||
-rw-r--r-- | kde-base/kwin/files/kwin-4.7.1-performance.patch | 91 | ||||
-rw-r--r-- | kde-base/kwin/kwin-4.7.1-r1.ebuild | 67 |
3 files changed, 165 insertions, 1 deletions
diff --git a/kde-base/kwin/ChangeLog b/kde-base/kwin/ChangeLog index 82f9cc7156e8..575765cb05cf 100644 --- a/kde-base/kwin/ChangeLog +++ b/kde-base/kwin/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for kde-base/kwin # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/kde-base/kwin/ChangeLog,v 1.241 2011/09/07 20:13:56 alexxy Exp $ +# $Header: /var/cvsroot/gentoo-x86/kde-base/kwin/ChangeLog,v 1.242 2011/09/13 20:12:33 dilfridge Exp $ + +*kwin-4.7.1-r1 (13 Sep 2011) + + 13 Sep 2011; Andreas K. Huettel <dilfridge@gentoo.org> +kwin-4.7.1-r1.ebuild, + +files/kwin-4.7.1-performance.patch: + Add serious performance improvement from upstream *kwin-4.7.1 (07 Sep 2011) diff --git a/kde-base/kwin/files/kwin-4.7.1-performance.patch b/kde-base/kwin/files/kwin-4.7.1-performance.patch new file mode 100644 index 000000000000..a34c77e5c828 --- /dev/null +++ b/kde-base/kwin/files/kwin-4.7.1-performance.patch @@ -0,0 +1,91 @@ +commit e142a1a142cbc8b87f021223e6abc947f456a7f9 +Author: Thomas Lübking <thomas.luebking@gmail.com> +Date: Thu Sep 8 22:20:35 2011 +0200 + + replace non-const QVector::operator[] accesses with const ::at() to avoid maaany deep vecor copies + +diff --git a/kwin/effects.cpp b/kwin/effects.cpp +index e0c76cb..f5863fc0 100644 +--- a/kwin/effects.cpp ++++ b/kwin/effects.cpp +@@ -200,7 +200,7 @@ void EffectsHandlerImpl::reconfigure() + void EffectsHandlerImpl::prePaintScreen(ScreenPrePaintData& data, int time) + { + if (current_paint_screen < loaded_effects.size()) { +- loaded_effects[current_paint_screen++].second->prePaintScreen(data, time); ++ loaded_effects.at(current_paint_screen++).second->prePaintScreen(data, time); + --current_paint_screen; + } + // no special final code +@@ -209,7 +209,7 @@ void EffectsHandlerImpl::prePaintScreen(ScreenPrePaintData& data, int time) + void EffectsHandlerImpl::paintScreen(int mask, QRegion region, ScreenPaintData& data) + { + if (current_paint_screen < loaded_effects.size()) { +- loaded_effects[current_paint_screen++].second->paintScreen(mask, region, data); ++ loaded_effects.at(current_paint_screen++).second->paintScreen(mask, region, data); + --current_paint_screen; + } else + scene->finalPaintScreen(mask, region, data); +@@ -218,7 +218,7 @@ void EffectsHandlerImpl::paintScreen(int mask, QRegion region, ScreenPaintData& + void EffectsHandlerImpl::postPaintScreen() + { + if (current_paint_screen < loaded_effects.size()) { +- loaded_effects[current_paint_screen++].second->postPaintScreen(); ++ loaded_effects.at(current_paint_screen++).second->postPaintScreen(); + --current_paint_screen; + } + // no special final code +@@ -227,7 +227,7 @@ void EffectsHandlerImpl::postPaintScreen() + void EffectsHandlerImpl::prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time) + { + if (current_paint_window < loaded_effects.size()) { +- loaded_effects[current_paint_window++].second->prePaintWindow(w, data, time); ++ loaded_effects.at(current_paint_window++).second->prePaintWindow(w, data, time); + --current_paint_window; + } + // no special final code +@@ -236,7 +236,7 @@ void EffectsHandlerImpl::prePaintWindow(EffectWindow* w, WindowPrePaintData& dat + void EffectsHandlerImpl::paintWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data) + { + if (current_paint_window < loaded_effects.size()) { +- loaded_effects[current_paint_window++].second->paintWindow(w, mask, region, data); ++ loaded_effects.at(current_paint_window++).second->paintWindow(w, mask, region, data); + --current_paint_window; + } else + scene->finalPaintWindow(static_cast<EffectWindowImpl*>(w), mask, region, data); +@@ -245,7 +245,7 @@ void EffectsHandlerImpl::paintWindow(EffectWindow* w, int mask, QRegion region, + void EffectsHandlerImpl::paintEffectFrame(EffectFrame* frame, QRegion region, double opacity, double frameOpacity) + { + if (current_paint_effectframe < loaded_effects.size()) { +- loaded_effects[current_paint_effectframe++].second->paintEffectFrame(frame, region, opacity, frameOpacity); ++ loaded_effects.at(current_paint_effectframe++).second->paintEffectFrame(frame, region, opacity, frameOpacity); + --current_paint_effectframe; + } else { + const EffectFrameImpl* frameImpl = static_cast<const EffectFrameImpl*>(frame); +@@ -256,7 +256,7 @@ void EffectsHandlerImpl::paintEffectFrame(EffectFrame* frame, QRegion region, do + void EffectsHandlerImpl::postPaintWindow(EffectWindow* w) + { + if (current_paint_window < loaded_effects.size()) { +- loaded_effects[current_paint_window++].second->postPaintWindow(w); ++ loaded_effects.at(current_paint_window++).second->postPaintWindow(w); + --current_paint_window; + } + // no special final code +@@ -273,7 +273,7 @@ bool EffectsHandlerImpl::provides(Effect::Feature ef) + void EffectsHandlerImpl::drawWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data) + { + if (current_draw_window < loaded_effects.size()) { +- loaded_effects[current_draw_window++].second->drawWindow(w, mask, region, data); ++ loaded_effects.at(current_draw_window++).second->drawWindow(w, mask, region, data); + --current_draw_window; + } else + scene->finalDrawWindow(static_cast<EffectWindowImpl*>(w), mask, region, data); +@@ -282,7 +282,7 @@ void EffectsHandlerImpl::drawWindow(EffectWindow* w, int mask, QRegion region, W + void EffectsHandlerImpl::buildQuads(EffectWindow* w, WindowQuadList& quadList) + { + if (current_build_quads < loaded_effects.size()) { +- loaded_effects[current_build_quads++].second->buildQuads(w, quadList); ++ loaded_effects.at(current_build_quads++).second->buildQuads(w, quadList); + --current_build_quads; + } + } diff --git a/kde-base/kwin/kwin-4.7.1-r1.ebuild b/kde-base/kwin/kwin-4.7.1-r1.ebuild new file mode 100644 index 000000000000..c39eb07fa9a2 --- /dev/null +++ b/kde-base/kwin/kwin-4.7.1-r1.ebuild @@ -0,0 +1,67 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/kde-base/kwin/kwin-4.7.1-r1.ebuild,v 1.1 2011/09/13 20:12:33 dilfridge Exp $ + +EAPI=4 + +KMNAME="kde-workspace" +OPENGL_REQUIRED="optional" +inherit kde4-meta + +DESCRIPTION="KDE window manager" +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux" +IUSE="debug gles xinerama" + +COMMONDEPEND=" + $(add_kdebase_dep kephal) + $(add_kdebase_dep libkworkspace) + $(add_kdebase_dep liboxygenstyle) + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXfixes + >=x11-libs/libXrandr-1.2.1 + x11-libs/libXrender + opengl? ( >=media-libs/mesa-7.10 ) + gles? ( >=media-libs/mesa-7.10[egl(+),gles] ) + xinerama? ( x11-libs/libXinerama ) +" +DEPEND="${COMMONDEPEND} + x11-proto/compositeproto + x11-proto/damageproto + x11-proto/fixesproto + x11-proto/randrproto + x11-proto/renderproto + xinerama? ( x11-proto/xineramaproto ) +" +RDEPEND="${COMMONDEPEND} + x11-apps/scripts +" + +KMEXTRACTONLY=" + ksmserver/ + libs/kephal/ + libs/oxygen/ +" + +PATCHES=( + "${FILESDIR}/${PN}-4.4.2-xinerama_cmake_automagic.patch" + "${FILESDIR}/${PN}-4.7.1-performance.patch" +) + +# you can use just gles or opengl or none +REQUIRED_USE="opengl? ( !gles ) gles? ( !opengl )" + +src_configure() { + # FIXME Remove when activity API moved away from libkworkspace + append-cppflags "-I${EPREFIX}/usr/include/kworkspace" + + mycmakeargs=( + $(cmake-utils_use_with gles OpenGLES) + $(cmake-utils_use gles KWIN_BUILD_WITH_OPENGLES) + $(cmake-utils_use_with opengl OpenGL) + $(cmake-utils_use_with xinerama X11_Xinerama) + -DWITH_X11_Xcomposite=ON + ) + + kde4-meta_src_configure +} |