compositor: Accumulate damage per plane
authorKristian Høgsberg <krh@bitplanet.net>
Fri, 3 Aug 2012 15:30:18 +0000 (11:30 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Fri, 3 Aug 2012 15:30:21 +0000 (11:30 -0400)
commit65a11e1039e7ea429ff26bdd0058bdf0efd1df2d
treec9a880a2a18b7c70a37dc3a2274866a130cf4da1
parent2a1aa4efce2b3f2301261892cc766a2f80fcbbd7
compositor: Accumulate damage per plane

When we analyze and accumulate damage prior to repainting, we need to
accumulate damage per plane, so that whatever damage a surface
contributes is accumulated in the plane that it's assigned to.  Before,
we would always accumulate damge in the primary plane, which caused
repaints in the primary plane whenever a surface in a sprite or
framebuffer was damaged.  Eliminating this repaint is a big win for
cases where we pageflip to a client surface or use a sprite overlay.

This also prepares for fixing the missing cursor updates, since we
now track damage to the cursor surface in a dedicated sprite plane.
src/compositor-drm.c
src/compositor.c
src/compositor.h