[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