[PATCH xserver 1/4] dri2: Only invalidate the immediate Window upon SetWindowPixmap

Ville Syrjälä ville.syrjala at linux.intel.com
Wed Feb 3 13:36:36 UTC 2016


On Wed, Feb 03, 2016 at 09:54:43AM +0000, Chris Wilson wrote:
> All callers of SetWindowPixmap will themselves be traversing the Window
> heirachy updating the backing Pixmap of each child and so we can forgo
> doing the identical traversal inside the DRI2SetWindowPixmap handler.
> 
> Reported-by: Loïc Yhuel <loic.yhuel at gmail.com>
> Link: http://lists.x.org/archives/xorg-devel/2015-February/045638.html
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>

Seems sane.
Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

> ---
>  hw/xfree86/dri2/dri2.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
> index 60ea6dd..bbff11c 100644
> --- a/hw/xfree86/dri2/dri2.c
> +++ b/hw/xfree86/dri2/dri2.c
> @@ -1385,8 +1385,7 @@ DRI2ConfigNotify(WindowPtr pWin, int x, int y, int w, int h, int bw,
>  static void
>  DRI2SetWindowPixmap(WindowPtr pWin, PixmapPtr pPix)
>  {
> -    DrawablePtr pDraw = (DrawablePtr) pWin;
> -    ScreenPtr pScreen = pDraw->pScreen;
> +    ScreenPtr pScreen = pWin->drawable.pScreen;
>      DRI2ScreenPtr ds = DRI2GetScreen(pScreen);
>  
>      pScreen->SetWindowPixmap = ds->SetWindowPixmap;
> @@ -1394,7 +1393,7 @@ DRI2SetWindowPixmap(WindowPtr pWin, PixmapPtr pPix)
>      ds->SetWindowPixmap = pScreen->SetWindowPixmap;
>      pScreen->SetWindowPixmap = DRI2SetWindowPixmap;
>  
> -    DRI2InvalidateDrawableAll(pDraw);
> +    DRI2InvalidateDrawable(&pWin->drawable);
>  }
>  
>  #define MAX_PRIME DRI2DriverPrimeMask
> -- 
> 2.7.0

-- 
Ville Syrjälä
Intel OTC


More information about the xorg-devel mailing list