[prev in list] [next in list] [prev in thread] [next in thread]
List: kwin
Subject: Re: Review Request: Only include currently active effects in the
From: "Commit Hook" <null () kde ! org>
Date: 2011-08-29 5:12:44
Message-ID: 20110829051244.19654.47452 () vidsolbach ! de
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
-----------------------------------------------------------
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
> =
>
[Attachment #5 (text/html)]
<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 \
solid;"> <tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="http://git.reviewboard.kde.org/r/102449/">http://git.reviewboard.kde.org/r/102449/</a>
</td>
</tr>
</table>
<br />
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This review has been \
submitted with commit bb6d4873259691b189a8b706f9dfc2e858f54609 by Martin Gräßlin to \
branch master.</pre> <br />
<p>- Commit</p>
<br />
<p>On August 27th, 2011, 9:34 a.m., Martin Gräßlin wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" \
style="background-image: \
url('http://git.reviewboard.kde.org/media/rb/images/review_request_box_top_bg.png'); \
background-position: left top; background-repeat: repeat-x; border: 1px black \
solid;"> <tr>
<td>
<div>Review request for kwin and Alex Fiestas.</div>
<div>By Martin Gräßlin.</div>
<p style="color: grey;"><i>Updated Aug. 27, 2011, 9:34 a.m.</i></p>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: \
1px solid #b8b5a0"> <tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;">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 effects is used in the current \
frame eliminating completely the hot path inside kwin. After that change \
Toplevel::windowType and Scene::Window::performPaint 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 \
WindowMotionmanager::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 \
framerate/performance, bringing me thinking about what during rendering a frame might \
be slow.</pre> </td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: \
1px solid #b8b5a0"> <tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;">Effects which I use are still working. Not all effects tested.</pre> \
</td> </tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>kwin/effects.h <span style="color: grey">(0d57339)</span></li>
<li>kwin/effects.cpp <span style="color: grey">(bbf5a45)</span></li>
<li>kwin/effects/boxswitch/boxswitch.h <span style="color: \
grey">(c0258a8)</span></li>
<li>kwin/effects/boxswitch/boxswitch.cpp <span style="color: \
grey">(5a09382)</span></li>
<li>kwin/effects/coverswitch/coverswitch.h <span style="color: \
grey">(26e9a4f)</span></li>
<li>kwin/effects/coverswitch/coverswitch.cpp <span style="color: \
grey">(45c7621)</span></li>
<li>kwin/effects/cube/cube.h <span style="color: grey">(c04a865)</span></li>
<li>kwin/effects/cube/cube.cpp <span style="color: grey">(91997bd)</span></li>
<li>kwin/effects/cube/cubeslide.h <span style="color: grey">(66f96ad)</span></li>
<li>kwin/effects/cube/cubeslide.cpp <span style="color: grey">(a1332ea)</span></li>
<li>kwin/effects/dashboard/dashboard.h <span style="color: \
grey">(4b3cbaf)</span></li>
<li>kwin/effects/dashboard/dashboard.cpp <span style="color: \
grey">(ccee74b)</span></li>
<li>kwin/effects/dialogparent/dialogparent.h <span style="color: \
grey">(c966f60)</span></li>
<li>kwin/effects/dialogparent/dialogparent.cpp <span style="color: \
grey">(d5a8d3f)</span></li>
<li>kwin/effects/dimscreen/dimscreen.h <span style="color: \
grey">(744d114)</span></li>
<li>kwin/effects/dimscreen/dimscreen.cpp <span style="color: \
grey">(cb1df9f)</span></li>
<li>kwin/effects/explosion/explosion.h <span style="color: \
grey">(b112ab1)</span></li>
<li>kwin/effects/explosion/explosion.cpp <span style="color: \
grey">(75f56ac)</span></li>
<li>kwin/effects/fade/fade.h <span style="color: grey">(c26298a)</span></li>
<li>kwin/effects/fade/fade.cpp <span style="color: grey">(52f0e37)</span></li>
<li>kwin/effects/fadedesktop/fadedesktop.h <span style="color: \
grey">(caee1a6)</span></li>
<li>kwin/effects/fadedesktop/fadedesktop.cpp <span style="color: \
grey">(d07b9ac)</span></li>
<li>kwin/effects/fallapart/fallapart.h <span style="color: \
grey">(a29ea0b)</span></li>
<li>kwin/effects/fallapart/fallapart.cpp <span style="color: \
grey">(16fd613)</span></li>
<li>kwin/effects/flipswitch/flipswitch.h <span style="color: \
grey">(d06005e)</span></li>
<li>kwin/effects/flipswitch/flipswitch.cpp <span style="color: \
grey">(b68c1c9)</span></li>
<li>kwin/effects/glide/glide.h <span style="color: grey">(bb793dd)</span></li>
<li>kwin/effects/glide/glide.cpp <span style="color: grey">(717bd54)</span></li>
<li>kwin/effects/highlightwindow/highlightwindow.h <span style="color: \
grey">(c13a887)</span></li>
<li>kwin/effects/highlightwindow/highlightwindow.cpp <span style="color: \
grey">(b175620)</span></li>
<li>kwin/effects/invert/invert.h <span style="color: grey">(0d79ba4)</span></li>
<li>kwin/effects/invert/invert.cpp <span style="color: grey">(6929880)</span></li>
<li>kwin/effects/login/login.h <span style="color: grey">(67b4d7e)</span></li>
<li>kwin/effects/login/login.cpp <span style="color: grey">(fd26f52)</span></li>
<li>kwin/effects/logout/logout.h <span style="color: grey">(a6a00f8)</span></li>
<li>kwin/effects/logout/logout.cpp <span style="color: grey">(7880dae)</span></li>
<li>kwin/effects/lookingglass/lookingglass.h <span style="color: \
grey">(cba2242)</span></li>
<li>kwin/effects/lookingglass/lookingglass.cpp <span style="color: \
grey">(783823e)</span></li>
<li>kwin/effects/magiclamp/magiclamp.h <span style="color: \
grey">(774ddb7)</span></li>
<li>kwin/effects/magiclamp/magiclamp.cpp <span style="color: \
grey">(6f2c6ea)</span></li>
<li>kwin/effects/magnifier/magnifier.h <span style="color: \
grey">(0e4e675)</span></li>
<li>kwin/effects/magnifier/magnifier.cpp <span style="color: \
grey">(3e216f6)</span></li>
<li>kwin/effects/minimizeanimation/minimizeanimation.h <span style="color: \
grey">(20fa156)</span></li>
<li>kwin/effects/minimizeanimation/minimizeanimation.cpp <span style="color: \
grey">(8eb87c4)</span></li>
<li>kwin/effects/mousemark/mousemark.h <span style="color: \
grey">(22094be)</span></li>
<li>kwin/effects/mousemark/mousemark.cpp <span style="color: \
grey">(733f94af)</span></li>
<li>kwin/effects/outline/outline.h <span style="color: grey">(9c144b4)</span></li>
<li>kwin/effects/outline/outline.cpp <span style="color: grey">(d2990e0)</span></li>
<li>kwin/effects/scalein/scalein.h <span style="color: grey">(6038bf0)</span></li>
<li>kwin/effects/scalein/scalein.cpp <span style="color: grey">(732646d)</span></li>
<li>kwin/effects/screenshot/screenshot.h <span style="color: \
grey">(040ef61)</span></li>
<li>kwin/effects/screenshot/screenshot.cpp <span style="color: \
grey">(d12d77d)</span></li>
<li>kwin/effects/sheet/sheet.h <span style="color: grey">(a2bb1ba)</span></li>
<li>kwin/effects/sheet/sheet.cpp <span style="color: grey">(c28a388)</span></li>
<li>kwin/effects/slide/slide.h <span style="color: grey">(9ad645e)</span></li>
<li>kwin/effects/slide/slide.cpp <span style="color: grey">(3e0df05)</span></li>
<li>kwin/effects/slidingpopups/slidingpopups.h <span style="color: \
grey">(bc58f95)</span></li>
<li>kwin/effects/slidingpopups/slidingpopups.cpp <span style="color: \
grey">(4ffd3e2)</span></li>
<li>kwin/effects/snaphelper/snaphelper.h <span style="color: \
grey">(b2ab2e0)</span></li>
<li>kwin/effects/snaphelper/snaphelper.cpp <span style="color: \
grey">(8b12532)</span></li>
<li>kwin/effects/startupfeedback/startupfeedback.h <span style="color: \
grey">(1e272c9)</span></li>
<li>kwin/effects/startupfeedback/startupfeedback.cpp <span style="color: \
grey">(0d2884b)</span></li>
<li>kwin/effects/taskbarthumbnail/taskbarthumbnail.h <span style="color: \
grey">(5412fe9)</span></li>
<li>kwin/effects/taskbarthumbnail/taskbarthumbnail.cpp <span style="color: \
grey">(7761ba5)</span></li>
<li>kwin/effects/thumbnailaside/thumbnailaside.h <span style="color: \
grey">(e1af63e)</span></li>
<li>kwin/effects/thumbnailaside/thumbnailaside.cpp <span style="color: \
grey">(99bcf9a)</span></li>
<li>kwin/effects/trackmouse/trackmouse.h <span style="color: \
grey">(e78c384)</span></li>
<li>kwin/effects/trackmouse/trackmouse.cpp <span style="color: \
grey">(14fe15a)</span></li>
<li>kwin/effects/windowgeometry/windowgeometry.h <span style="color: \
grey">(d9b632b)</span></li>
<li>kwin/effects/windowgeometry/windowgeometry.cpp <span style="color: \
grey">(d682751)</span></li>
<li>kwin/effects/wobblywindows/wobblywindows.h <span style="color: \
grey">(d6b262b)</span></li>
<li>kwin/effects/wobblywindows/wobblywindows.cpp <span style="color: \
grey">(f70d7e0)</span></li>
<li>kwin/effects/zoom/zoom.h <span style="color: grey">(fee4dd1)</span></li>
<li>kwin/effects/zoom/zoom.cpp <span style="color: grey">(31d4c78)</span></li>
<li>kwin/libkwineffects/kwineffects.h <span style="color: \
grey">(d75d64d)</span></li>
<li>kwin/libkwineffects/kwineffects.cpp <span style="color: \
grey">(857cc42)</span></li>
</ul>
<p><a href="http://git.reviewboard.kde.org/r/102449/diff/" style="margin-left: \
3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>
_______________________________________________
kwin mailing list
kwin@kde.org
https://mail.kde.org/mailman/listinfo/kwin
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic