git » kdeclarative.git » commit 848b579

Fix high CPU usage in plotter component (FS#45795)

author Antonio Rojas
2015-07-27 16:29:28 UTC
committer Antonio Rojas
2015-07-27 16:29:28 UTC
parent 7af7cad08d826f2a6172055adaa3b273ddb2068b

Fix high CPU usage in plotter component (FS#45795)

PKGBUILD +9 -4
cpu-plotter.patch +29 -0

diff --git a/PKGBUILD b/PKGBUILD
index cbb4773..cac8666 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=kdeclarative
 pkgver=5.12.0
-pkgrel=1
+pkgrel=2
 pkgdesc='Provides integration of QML and KDE Frameworks'
 arch=('i686' 'x86_64')
 url='https://projects.kde.org/projects/frameworks/kdeclarative'
@@ -11,11 +11,16 @@ license=('LGPL')
 depends=('kio' 'libepoxy' 'kpackage')
 makedepends=('extra-cmake-modules')
 groups=('kf5')
-source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz")
-md5sums=('62cb010adb59c15129743ad57fdc198a')
+source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz" 'cpu-plotter.patch')
+md5sums=('62cb010adb59c15129743ad57fdc198a'
+         '12f60b78bf77a69957349989d33ceeda')
 
 prepare() {
-  mkdir build
+  mkdir -p build
+
+# Fix high CPU usage in plotter component http://bugs.kde.org/show_bug.cgi?id=348385
+  cd $pkgname-$pkgver
+  patch -p1 -i ../cpu-plotter.patch
 }
 
 build() {
diff --git a/cpu-plotter.patch b/cpu-plotter.patch
new file mode 100644
index 0000000..0982866
--- /dev/null
+++ b/cpu-plotter.patch
@@ -0,0 +1,29 @@
+From: David Edmundson <kde@davidedmundson.co.uk>
+Date: Mon, 27 Jul 2015 10:54:17 +0000
+Subject: Don't refresh the entire window when we render the plotter
+X-Git-Url: http://quickgit.kde.org/?p=kdeclarative.git&a=commitdiff&h=7a6a2cda780784e504960c96b4b41241ddf10531
+---
+Don't refresh the entire window when we render the plotter
+
+This means the window is only updated when the plotter changes, rather
+than effectively every possible frame.
+
+Reviewed by: Marco Martin
+
+CCBUG: 348385
+---
+
+
+--- a/src/qmlcontrols/kquickcontrolsaddons/plotter.cpp
++++ b/src/qmlcontrols/kquickcontrolsaddons/plotter.cpp
+@@ -709,9 +709,6 @@
+ 
+     // Delete the VBO
+     glDeleteBuffers(1, &vbo);
+-    if (window()) {
+-        window()->update();
+-    }
+ }
+ 
+ QSGNode *Plotter::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *updatePaintNodeData)
+