[PATCH weston 00/11] implement damage_buffer

Derek Foreman derekf at osg.samsung.com
Wed Nov 18 14:32:23 PST 2015


As usual I've included random NOPwork in the vicinity of the
important changes.

It was convenient to have a way to transform a region with a matrix
so I cherry-picked Jason Ekstrand's patch to do so out of my transform
series from over a year ago.  This changes pixman zooming, which is
utterly broken now and works properly (if slowly) after the patch.
If that's a problem I can keep the function and stop using it in
the pixman renderer, I just didn't want to change the patch.

There should be no problem with interaction between damage and
damage_buffer.  damage_buffer just converts its damage into
surface co-ordinates at commit time.  The implementation came
out fairly clean so I removed warnings about mixing the two
from the wayland proto xml.

I didn't bother making toytoolkit prefer damage_buffer if
available (though I did a hack job of it for testing
weston-subsurfaces, not included here).  simple-damage has
been updated with a --use-damage-buffer switch for testing.

There's a bit of a bug fix in here too - currently if we post
damage with negative width or height those values are passed
right on to pixman which whines in the log.

Thanks for looking,
Derek

Derek Foreman (10):
  smoke: Don't post extra damage
  toytoolkit: Remove window_damage()
  compositor: Change "touched" to bool
  gl-renderer: Use a bool for needs_full_upload
  gl-renderer: Make texture_used a bool instead of an int
  compositor: Move weston_matrix_transform_region to compositor.c and
    export it
  compositor: ignore surface_damage with negative height or width
  compositor: Add buffer_damage
  simple-damage: Offset drawing co-ordinates not buffer start
  simple-damage: Add --use-buffer-damage flag

Jason Ekstrand (1):
  pixman-renderer: Use output->matrix for region transformations and
    enable output zoom

 clients/simple-damage.c | 120 ++++++++++++++++++++++++++-------------
 clients/smoke.c         |   2 -
 clients/window.c        |   7 ---
 clients/window.h        |   4 --
 src/compositor.c        | 148 ++++++++++++++++++++++++++++++++++++++++++------
 src/compositor.h        |  10 +++-
 src/gl-renderer.c       |  12 ++--
 src/pixman-renderer.c   |  19 +++----
 src/rpi-renderer.c      |   4 +-
 9 files changed, 237 insertions(+), 89 deletions(-)

-- 
2.6.2



More information about the wayland-devel mailing list