On Wed, 29 Dec 2010 15:04:28 +0200, [email protected] wrote:
> From: Ville Syrjälä <[email protected]>

> --- a/hw/xfree86/xaa/xaaBitBlt.c
> +++ b/hw/xfree86/xaa/xaaBitBlt.c
> @@ -57,7 +57,8 @@ XAABitBlt(
>      if((pSrcDrawable != pDstDrawable) && 
>                       pSrcDrawable->pScreen->SourceValidate) {
>       (*pSrcDrawable->pScreen->SourceValidate) (
> -                     pSrcDrawable, srcx, srcy, width, height);
> +                     pSrcDrawable, srcx, srcy, width, height,
> +                     pGC->subWindowMode);
>      }

> --- a/mi/micopy.c
> +++ b/mi/micopy.c
> @@ -186,7 +186,8 @@ miDoCopy (DrawablePtr     pSrcDrawable,
>      if ((pSrcDrawable != pDstDrawable) &&
>       pSrcDrawable->pScreen->SourceValidate)
>      {
> -     (*pSrcDrawable->pScreen->SourceValidate) (pSrcDrawable, xIn, yIn, 
> widthSrc, heightSrc);
> +     (*pSrcDrawable->pScreen->SourceValidate) (pSrcDrawable, xIn, yIn, 
> widthSrc, heightSrc,
> +                                               pGC->subWindowMode);
>      }
>  
>      /* Compute source clip region */

> --- a/miext/damage/damage.c
> +++ b/miext/damage/damage.c
> @@ -898,7 +898,8 @@ damageCopyArea(DrawablePtr   pSrc,
>       pSrc->type == DRAWABLE_WINDOW &&
>       ((WindowPtr)pSrc)->viewable)
>      {
> -     (*pSrc->pScreen->SourceValidate) (pSrc, srcx, srcy, width, height);
> +     (*pSrc->pScreen->SourceValidate) (pSrc, srcx, srcy, width, height,
> +                                       pGC->subWindowMode);
>      }
>      
>      if (checkGCDamage (pDst, pGC))
> @@ -944,7 +945,8 @@ damageCopyPlane(DrawablePtr       pSrc,
>       pSrc->type == DRAWABLE_WINDOW &&
>       ((WindowPtr)pSrc)->viewable)
>      {
> -        (*pSrc->pScreen->SourceValidate) (pSrc, srcx, srcy, width, height);
> +     (*pSrc->pScreen->SourceValidate) (pSrc, srcx, srcy, width, height,
> +                                       pGC->subWindowMode);
>      }
>  
>      if (checkGCDamage (pDst, pGC))

So, one of the changes I suggested might be useful was to remove the
check for src != dst here (and in the other places this function is
called). That will ensure that intra-drawable copies also get
fixed. That would eliminate the call from damage.c here.

That change seems useful independently from the other changes
you've proposed here.

This patch looks correct (fortunately, the compiler will catch any
mistakes here).

Reviewed-by: Keith Packard <[email protected]>

-- 
[email protected]

Attachment: pgpYNMSF5VQlf.pgp
Description: PGP signature

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to