[PATCH] exa/mixed: avoid unnecessary dest system buffer copy in prepare_access_reg

Michel Dänzer michel at daenzer.net
Fri Sep 3 00:57:37 PDT 2010


On Don, 2010-08-26 at 22:57 +1200, Karl Tomlinson wrote: 
> 
> A region is only provided to prepare_access_reg for destination pixmaps when
> the operator will not read from the destination.  A non-NULL region therefore
> indicates that no pixels in the destination gpu buffer need to be copied to
> the system buffer.
> 
> The provided region still serves a purpose, as it indicates the portion of
> the system buffer that will be damaged.
> ---
>  exa/exa_migration_mixed.c |   42 ++++++++++++++++++++++++++++--------------
>  1 files changed, 28 insertions(+), 14 deletions(-)

I like the idea of this[0], but unfortunately it breaks the transparency
of rounded window corners with compiz here, see the attached screenshot.
Are you seeing this as well?

[0] I was experimenting with always creating the damage record right
away, but I think this should provide more or less the same (and even
some more) benefits without the drawbacks.


Minor nit: Maybe region_all could only be (un)initialized when it's
actually used. Not sure it's worth bothering though.


-- 
Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer

-------------- next part --------------
A non-text attachment was scrubbed...
Name: compiz-broken-corners.png
Type: image/png
Size: 8796 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg-devel/attachments/20100903/ccb5b589/attachment-0001.png>


More information about the xorg-devel mailing list