From kwin Mon Aug 29 05:12:44 2011 From: "Commit Hook" Date: Mon, 29 Aug 2011 05:12:44 +0000 To: kwin Subject: Re: Review Request: Only include currently active effects in the Message-Id: <20110829051244.19654.47452 () vidsolbach ! de> X-MARC-Message: https://marc.info/?l=kwin&m=131459479219540 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--===============4619901687370604146==" --===============4619901687370604146== Content-Type: multipart/alternative; boundary="===============1264877159644020273==" --===============1264877159644020273== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/102449/#review6118 ----------------------------------------------------------- This review has been submitted with commit bb6d4873259691b189a8b706f9dfc2e8= 58f54609 by Martin Gr=C3=A4=C3=9Flin to branch master. - Commit On Aug. 27, 2011, 9:34 a.m., Martin Gr=C3=A4=C3=9Flin wrote: > = > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://git.reviewboard.kde.org/r/102449/ > ----------------------------------------------------------- > = > (Updated Aug. 27, 2011, 9:34 a.m.) > = > = > Review request for kwin and Alex Fiestas. > = > = > Summary > ------- > = > I did a callgrind analysis of KWin and noticed (as expected) that the eff= ect chain is the most often called code in KWin and that it is not very per= formant due to the operator[] used all the time. > = > This change allows effects to declare themselve as active, which means th= ey will be included in the effect chain. If an effect is currently not acti= ve, it will not be called. The result is that only a very small number of e= ffects is used in the current frame eliminating completely the hot path ins= ide kwin. After that change Toplevel::windowType and Scene::Window::perform= Paint are the most expensive methods. PerformePaint for example was not eve= n in the top ten before! > = > PresentWindows, DesktopGrid and Slideback are not adjusted yet, because W= indowMotionmanager::areWindowsMoving() is not const. This will be changed a= s Slideback is now in the hot path > = > The analysis was motivated by complaints from afiestas about too bad fram= erate/performance, bringing me thinking about what during rendering a frame= might be slow. > = > = > Diffs > ----- > = > kwin/effects.h 0d57339 = > kwin/effects.cpp bbf5a45 = > kwin/effects/boxswitch/boxswitch.h c0258a8 = > kwin/effects/boxswitch/boxswitch.cpp 5a09382 = > kwin/effects/coverswitch/coverswitch.h 26e9a4f = > kwin/effects/coverswitch/coverswitch.cpp 45c7621 = > kwin/effects/cube/cube.h c04a865 = > kwin/effects/cube/cube.cpp 91997bd = > kwin/effects/cube/cubeslide.h 66f96ad = > kwin/effects/cube/cubeslide.cpp a1332ea = > kwin/effects/dashboard/dashboard.h 4b3cbaf = > kwin/effects/dashboard/dashboard.cpp ccee74b = > kwin/effects/dialogparent/dialogparent.h c966f60 = > kwin/effects/dialogparent/dialogparent.cpp d5a8d3f = > kwin/effects/dimscreen/dimscreen.h 744d114 = > kwin/effects/dimscreen/dimscreen.cpp cb1df9f = > kwin/effects/explosion/explosion.h b112ab1 = > kwin/effects/explosion/explosion.cpp 75f56ac = > kwin/effects/fade/fade.h c26298a = > kwin/effects/fade/fade.cpp 52f0e37 = > kwin/effects/fadedesktop/fadedesktop.h caee1a6 = > kwin/effects/fadedesktop/fadedesktop.cpp d07b9ac = > kwin/effects/fallapart/fallapart.h a29ea0b = > kwin/effects/fallapart/fallapart.cpp 16fd613 = > kwin/effects/flipswitch/flipswitch.h d06005e = > kwin/effects/flipswitch/flipswitch.cpp b68c1c9 = > kwin/effects/glide/glide.h bb793dd = > kwin/effects/glide/glide.cpp 717bd54 = > kwin/effects/highlightwindow/highlightwindow.h c13a887 = > kwin/effects/highlightwindow/highlightwindow.cpp b175620 = > kwin/effects/invert/invert.h 0d79ba4 = > kwin/effects/invert/invert.cpp 6929880 = > kwin/effects/login/login.h 67b4d7e = > kwin/effects/login/login.cpp fd26f52 = > kwin/effects/logout/logout.h a6a00f8 = > kwin/effects/logout/logout.cpp 7880dae = > kwin/effects/lookingglass/lookingglass.h cba2242 = > kwin/effects/lookingglass/lookingglass.cpp 783823e = > kwin/effects/magiclamp/magiclamp.h 774ddb7 = > kwin/effects/magiclamp/magiclamp.cpp 6f2c6ea = > kwin/effects/magnifier/magnifier.h 0e4e675 = > kwin/effects/magnifier/magnifier.cpp 3e216f6 = > kwin/effects/minimizeanimation/minimizeanimation.h 20fa156 = > kwin/effects/minimizeanimation/minimizeanimation.cpp 8eb87c4 = > kwin/effects/mousemark/mousemark.h 22094be = > kwin/effects/mousemark/mousemark.cpp 733f94af = > kwin/effects/outline/outline.h 9c144b4 = > kwin/effects/outline/outline.cpp d2990e0 = > kwin/effects/scalein/scalein.h 6038bf0 = > kwin/effects/scalein/scalein.cpp 732646d = > kwin/effects/screenshot/screenshot.h 040ef61 = > kwin/effects/screenshot/screenshot.cpp d12d77d = > kwin/effects/sheet/sheet.h a2bb1ba = > kwin/effects/sheet/sheet.cpp c28a388 = > kwin/effects/slide/slide.h 9ad645e = > kwin/effects/slide/slide.cpp 3e0df05 = > kwin/effects/slidingpopups/slidingpopups.h bc58f95 = > kwin/effects/slidingpopups/slidingpopups.cpp 4ffd3e2 = > kwin/effects/snaphelper/snaphelper.h b2ab2e0 = > kwin/effects/snaphelper/snaphelper.cpp 8b12532 = > kwin/effects/startupfeedback/startupfeedback.h 1e272c9 = > kwin/effects/startupfeedback/startupfeedback.cpp 0d2884b = > kwin/effects/taskbarthumbnail/taskbarthumbnail.h 5412fe9 = > kwin/effects/taskbarthumbnail/taskbarthumbnail.cpp 7761ba5 = > kwin/effects/thumbnailaside/thumbnailaside.h e1af63e = > kwin/effects/thumbnailaside/thumbnailaside.cpp 99bcf9a = > kwin/effects/trackmouse/trackmouse.h e78c384 = > kwin/effects/trackmouse/trackmouse.cpp 14fe15a = > kwin/effects/windowgeometry/windowgeometry.h d9b632b = > kwin/effects/windowgeometry/windowgeometry.cpp d682751 = > kwin/effects/wobblywindows/wobblywindows.h d6b262b = > kwin/effects/wobblywindows/wobblywindows.cpp f70d7e0 = > kwin/effects/zoom/zoom.h fee4dd1 = > kwin/effects/zoom/zoom.cpp 31d4c78 = > kwin/libkwineffects/kwineffects.h d75d64d = > kwin/libkwineffects/kwineffects.cpp 857cc42 = > = > Diff: http://git.reviewboard.kde.org/r/102449/diff > = > = > Testing > ------- > = > Effects which I use are still working. Not all effects tested. > = > = > Thanks, > = > Martin > = > --===============1264877159644020273== Content-Type: text/html; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable
This is an automatically generated e-mail. To reply, visit: http://git.revie= wboard.kde.org/r/102449/

This revie=
w has been submitted with commit bb6d4873259691b189a8b706f9dfc2e858f54609 b=
y Martin Gr=C3=A4=C3=9Flin to branch master.

- Commit


On August 27th, 2011, 9:34 a.m., Martin Gr=C3=A4=C3=9Flin wrote:

Review request for kwin and Alex Fiestas.
By Martin Gr=C3=A4=C3=9Flin.

Updated Aug. 27, 2011, 9:34 a.m.

Descripti= on

I did a callgrind analysis of KWin and noticed (as expected)=
 that the effect chain is the most often called code in KWin and that it is=
 not very performant due to the operator[] used all the time.

This change allows effects to declare themselve as active, which means they=
 will be included in the effect chain. If an effect is currently not active=
, it will not be called. The result is that only a very small number of eff=
ects is used in the current frame eliminating completely the hot path insid=
e kwin. After that change Toplevel::windowType and Scene::Window::performPa=
int are the most expensive methods. PerformePaint for example was not even =
in the top ten before!

PresentWindows, DesktopGrid and Slideback are not adjusted yet, because Win=
dowMotionmanager::areWindowsMoving() is not const. This will be changed as =
Slideback is now in the hot path

The analysis was motivated by complaints from afiestas about too bad framer=
ate/performance, bringing me thinking about what during rendering a frame m=
ight be slow.

Testing <= /h1>
Effects which I use are still working. Not all effects teste=
d.

Diffs=

  • kwin/effects.h (0d57339)
  • kwin/effects.cpp (bbf5a45)
  • kwin/effects/boxswitch/boxswitch.h (c0258a= 8)
  • kwin/effects/boxswitch/boxswitch.cpp (5a09= 382)
  • kwin/effects/coverswitch/coverswitch.h (26= e9a4f)
  • kwin/effects/coverswitch/coverswitch.cpp (= 45c7621)
  • kwin/effects/cube/cube.h (c04a865)<= /li>
  • kwin/effects/cube/cube.cpp (91997bd)
  • kwin/effects/cube/cubeslide.h (66f96ad)
  • kwin/effects/cube/cubeslide.cpp (a1332ea)<= /span>
  • kwin/effects/dashboard/dashboard.h (4b3cba= f)
  • kwin/effects/dashboard/dashboard.cpp (ccee= 74b)
  • kwin/effects/dialogparent/dialogparent.h (= c966f60)
  • kwin/effects/dialogparent/dialogparent.cpp (d5a8d3f)
  • kwin/effects/dimscreen/dimscreen.h (744d11= 4)
  • kwin/effects/dimscreen/dimscreen.cpp (cb1d= f9f)
  • kwin/effects/explosion/explosion.h (b112ab= 1)
  • kwin/effects/explosion/explosion.cpp (75f5= 6ac)
  • kwin/effects/fade/fade.h (c26298a)<= /li>
  • kwin/effects/fade/fade.cpp (52f0e37)
  • kwin/effects/fadedesktop/fadedesktop.h (ca= ee1a6)
  • kwin/effects/fadedesktop/fadedesktop.cpp (= d07b9ac)
  • kwin/effects/fallapart/fallapart.h (a29ea0= b)
  • kwin/effects/fallapart/fallapart.cpp (16fd= 613)
  • kwin/effects/flipswitch/flipswitch.h (d060= 05e)
  • kwin/effects/flipswitch/flipswitch.cpp (b6= 8c1c9)
  • kwin/effects/glide/glide.h (bb793dd)
  • kwin/effects/glide/glide.cpp (717bd54)
  • kwin/effects/highlightwindow/highlightwindow.h (c13a887)
  • kwin/effects/highlightwindow/highlightwindow.cpp (b175620)
  • kwin/effects/invert/invert.h (0d79ba4)
  • kwin/effects/invert/invert.cpp (6929880)
  • kwin/effects/login/login.h (67b4d7e)
  • kwin/effects/login/login.cpp (fd26f52)
  • kwin/effects/logout/logout.h (a6a00f8)
  • kwin/effects/logout/logout.cpp (7880dae)
  • kwin/effects/lookingglass/lookingglass.h (= cba2242)
  • kwin/effects/lookingglass/lookingglass.cpp (783823e)
  • kwin/effects/magiclamp/magiclamp.h (774ddb= 7)
  • kwin/effects/magiclamp/magiclamp.cpp (6f2c= 6ea)
  • kwin/effects/magnifier/magnifier.h (0e4e67= 5)
  • kwin/effects/magnifier/magnifier.cpp (3e21= 6f6)
  • kwin/effects/minimizeanimation/minimizeanimation.h (20fa156)
  • kwin/effects/minimizeanimation/minimizeanimation.cpp (8eb87c4)
  • kwin/effects/mousemark/mousemark.h (22094b= e)
  • kwin/effects/mousemark/mousemark.cpp (733f= 94af)
  • kwin/effects/outline/outline.h (9c144b4)
  • kwin/effects/outline/outline.cpp (d2990e0)=
  • kwin/effects/scalein/scalein.h (6038bf0)
  • kwin/effects/scalein/scalein.cpp (732646d)=
  • kwin/effects/screenshot/screenshot.h (040e= f61)
  • kwin/effects/screenshot/screenshot.cpp (d1= 2d77d)
  • kwin/effects/sheet/sheet.h (a2bb1ba)
  • kwin/effects/sheet/sheet.cpp (c28a388)
  • kwin/effects/slide/slide.h (9ad645e)
  • kwin/effects/slide/slide.cpp (3e0df05)
  • kwin/effects/slidingpopups/slidingpopups.h (bc58f95)
  • kwin/effects/slidingpopups/slidingpopups.cpp (4ffd3e2)
  • kwin/effects/snaphelper/snaphelper.h (b2ab= 2e0)
  • kwin/effects/snaphelper/snaphelper.cpp (8b= 12532)
  • kwin/effects/startupfeedback/startupfeedback.h (1e272c9)
  • kwin/effects/startupfeedback/startupfeedback.cpp (0d2884b)
  • kwin/effects/taskbarthumbnail/taskbarthumbnail.h (5412fe9)
  • kwin/effects/taskbarthumbnail/taskbarthumbnail.cpp (7761ba5)
  • kwin/effects/thumbnailaside/thumbnailaside.h (e1af63e)
  • kwin/effects/thumbnailaside/thumbnailaside.cpp (99bcf9a)
  • kwin/effects/trackmouse/trackmouse.h (e78c= 384)
  • kwin/effects/trackmouse/trackmouse.cpp (14= fe15a)
  • kwin/effects/windowgeometry/windowgeometry.h (d9b632b)
  • kwin/effects/windowgeometry/windowgeometry.cpp (d682751)
  • kwin/effects/wobblywindows/wobblywindows.h (d6b262b)
  • kwin/effects/wobblywindows/wobblywindows.cpp (f70d7e0)
  • kwin/effects/zoom/zoom.h (fee4dd1)<= /li>
  • kwin/effects/zoom/zoom.cpp (31d4c78)
  • kwin/libkwineffects/kwineffects.h (d75d64d= )
  • kwin/libkwineffects/kwineffects.cpp (857cc= 42)

View Diff

--===============1264877159644020273==-- --===============4619901687370604146== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ kwin mailing list kwin@kde.org https://mail.kde.org/mailman/listinfo/kwin --===============4619901687370604146==--