[PATCH] compositor: Accumulate obscured damage into the primary plane damage

Kristian Høgsberg hoegsberg at gmail.com
Wed Sep 12 09:49:49 PDT 2012


On Wed, Sep 12, 2012 at 05:16:31PM +0300, Ander Conselvan de Oliveira wrote:
> From: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira at intel.com>
> 
> When accumulating damage in the surfaces into the primary plane damage,
> regions obscured by the opaque region would be excluded. This causes a
> bug when a redraw of a surface is obscured by an opaque surface on
> another plane. The drawing to the former surface is clipped but
> its damage is never added to the primary plane and is just lost. Moving
> the opaque window later reveals the not-up-to-date content below it.

Ah, yes, good catch.  When the opaque surface is part of the primary
plane, we'll clear the damage when we repaint the opaque surface, if
not, the damage will stay around until the opqaue overlay is moved,
which is what we want.  Committed.

Kristian

> ---
>  src/compositor.c |    1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/src/compositor.c b/src/compositor.c
> index 840a2a9..04c9be8 100644
> --- a/src/compositor.c
> +++ b/src/compositor.c
> @@ -847,7 +847,6 @@ surface_accumulate_damage(struct weston_surface *surface,
>  					  surface->geometry.y - surface->plane->y);
>  	}
>  
> -	pixman_region32_subtract(&surface->damage, &surface->damage, opaque);
>  	pixman_region32_union(&surface->plane->damage,
>  			      &surface->plane->damage, &surface->damage);
>  	empty_region(&surface->damage);
> -- 
> 1.7.9.5
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list