Merge lp:~vanvugt/compiz/XDamageReport into lp:compiz/0.9.8
Status: | Merged |
---|---|
Merged at revision: | 3239 |
Proposed branch: | lp:~vanvugt/compiz/XDamageReport |
Merge into: | lp:compiz/0.9.8 |
Diff against target: |
86 lines (+15/-3) 5 files modified
plugins/composite/src/privates.h (+3/-0) plugins/composite/src/screen.cpp (+9/-0) plugins/composite/src/window.cpp (+1/-1) plugins/decor/src/decor.cpp (+1/-1) plugins/opengl/src/texture.cpp (+1/-1) |
To merge this branch: | bzr merge lp:~vanvugt/compiz/XDamageReport |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Sam Spilsbury | Approve | ||
Tim Penhey (community) | Approve | ||
Review via email:
|
Commit message
Use the XDamage extension more efficiently (the way it was designed to be
used). This dramatically reduces CPU usage, reduces wakeups, and increases
frame rates. It also solves at least one observed performance bug
(LP: #1007299) and probably several more.
Description of the change
Results!
--- Intel driver ---
BEFORE:
Application FPS = 5500
Compiz XDamageNotify per sec = 11000
CPU usage = 4%
Compiz frame rate = 30 FPS
AFTER:
Application FPS = 5500
Compiz XDamageNotify per sec = 120
CPU usage = 1-2%
Compiz frame rate = 60 FPS
RESULT:
2x frame rate
50-75% reduction in CPU
99% reduction in X event traffic
--- NVIDIA driver ---
BEFORE:
Application FPS = 3700
Compiz XDamageNotify per sec = 7400
CPU usage = 12%
Compiz frame rate = 60 FPS
AFTER:
Application FPS = 3700
Compiz XDamageNotify per sec = 120
CPU usage = 9-10%
Compiz frame rate = 60 FPS
RESULT:
Frame rate change not noticeable.
10-25% reduction in CPU
99% reduction in X event traffic
On Fri, 1 Jun 2012, Daniel van Vugt wrote:
I'm happy with the change to using XDamageReportBo undingRects . In
fact, it really shouldn't be an option - BoundingRects will be just
as effecient as RawRectangles when only one rectangle is being
delivered per-paint. And since the rectangles
are per-drawable anyways, the performance penalty in that case
will only arrive if you have a large window with two small
sections that are updating (and even then, redrawing the whole
large window isn't really that expensive)
> Daniel van Vugt has proposed merging lp:~vanvugt/compiz/XDamageReport into lp:compiz. /bugs.launchpad .net/compiz/ +bug/1007299 /code.launchpad .net/~vanvugt/ compiz/ XDamageReport/ +merge/ 108307 /code.launchpad .net/~vanvugt/ compiz/ XDamageReport/ +merge/ 108307
>
> Requested reviews:
> Compiz Maintainers (compiz-team)
> Related bugs:
> Bug #1007299 in Compiz: "Compiz frame rate decreases if application frame rates are too high (unthrottled)"
> https:/
>
> For more details, see:
> https:/
>
> Results!
>
> --- Intel driver ---
>
> BEFORE:
> Application FPS = 5500
> Compiz XDamageNotify per sec = 11000
> CPU usage = 4%
> Compiz frame rate = 30 FPS
>
> AFTER:
> Application FPS = 5500
> Compiz XDamageNotify per sec = 120
> CPU usage = 1-2%
> Compiz frame rate = 60 FPS
>
> RESULT:
> 2x frame rate
> 50-75% reduction in CPU
> 99% reduction in X event traffic
>
> --- NVIDIA driver ---
>
> BEFORE:
> Application FPS = 3700
> Compiz XDamageNotify per sec = 7400
> CPU usage = 12%
> Compiz frame rate = 60 FPS
>
> AFTER:
> Application FPS = 3700
> Compiz XDamageNotify per sec = 120
> CPU usage = 9-10%
> Compiz frame rate = 60 FPS
>
> RESULT:
> Frame rate change not noticeable.
> 10-25% reduction in CPU
> 99% reduction in X event traffic
> --
> https:/
> Your team Compiz Maintainers is requested to review the proposed merge of lp:~vanvugt/compiz/XDamageReport into lp:compiz.
>