On Wed,  8 Sep 2010 14:04:40 -0400, Adam Jackson <[email protected]> wrote:
> Signed-off-by: Adam Jackson <[email protected]>
> ---
>  composite/compwindow.c |   36 +++++++++++++++++-------------------
>  1 files changed, 17 insertions(+), 19 deletions(-)
> 
> diff --git a/composite/compwindow.c b/composite/compwindow.c
> index 160b764..df06c88 100644
> --- a/composite/compwindow.c
> +++ b/composite/compwindow.c
> @@ -639,10 +639,9 @@ compWindowFormat (WindowPtr pWin)
>  }
>  
>  static void
> -compWindowUpdateAutomatic (WindowPtr pWin)
> +compWindowUpdateAutomatic (WindowPtr pWin, ScreenPtr pScreen)
>  {
>      CompWindowPtr   cw = GetCompWindow (pWin);
> -    ScreenPtr            pScreen = pWin->drawable.pScreen;
>      WindowPtr            pParent = pWin->parent;
>      PixmapPtr            pSrcPixmap = (*pScreen->GetWindowPixmap) (pWin);
>      PictFormatPtr   pSrcFormat = compWindowFormat (pWin);
> @@ -665,8 +664,7 @@ compWindowUpdateAutomatic (WindowPtr pWin)
>      /*
>       * First move the region from window to screen coordinates
>       */
> -    RegionTranslate(pRegion,
> -                   pWin->drawable.x, pWin->drawable.y);
> +    RegionTranslate(pRegion, pWin->drawable.x, pWin->drawable.y);
>  
>      /*
>       * Clip against the "real" border clip
> @@ -676,8 +674,7 @@ compWindowUpdateAutomatic (WindowPtr pWin)
>      /*
>       * Now translate from screen to dest coordinates
>       */
> -    RegionTranslate(pRegion,
> -                   -pParent->drawable.x, -pParent->drawable.y);
> +    RegionTranslate(pRegion, -pParent->drawable.x, -pParent->drawable.y);
>  
>      /*
>       * Clip the picture
> @@ -706,23 +703,24 @@ compWindowUpdateAutomatic (WindowPtr pWin)
>      DamageEmpty (cw->damage);
>  }
>  
> -void
> -compWindowUpdate (WindowPtr pWin)
> +static int
> +compWindowUpdateVisit(WindowPtr pWin, void *data)
>  {
> -    WindowPtr        pChild;
> -
> -    for (pChild = pWin->lastChild; pChild; pChild = pChild->prevSib)
> -     compWindowUpdate (pChild);
> -    if (pWin->redirectDraw != RedirectDrawNone)
> +    if (pWin->redirectDraw == RedirectDrawAutomatic)

This should not be necessary; I'd love to see proof that it changes what
the server does.

>      {
> -     CompWindowPtr   cw = GetCompWindow(pWin);
> -
> +     CompWindowPtr cw = GetCompWindow(pWin);
>       if (cw->damaged)
> -     {
> -         compWindowUpdateAutomatic (pWin);
> -         cw->damaged = FALSE;
> -     }
> +         compWindowUpdateAutomatic(pWin, data);
> +     cw->damaged = FALSE;

We've already tested for this; no reason to dirty the cache line; you're
not saving a branch.

-- 
[email protected]

Attachment: pgp3bD7zhdrcv.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