summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2016-02-03 09:54:43 +0000
committerAdam Jackson <ajax@redhat.com>2016-02-08 17:07:32 -0500
commitb7d392931a309d0fe754869efb456ccd0385f3aa (patch)
tree076118a02aedb469292db138ec491ceb42455a48
parentda69f2f15a9917c3ed04e305061683c41338126e (diff)
dri2: Only invalidate the immediate Window upon SetWindowPixmap
All callers of SetWindowPixmap will themselves be traversing the Window heirarchy 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@gmail.com> Link: http://lists.x.org/archives/xorg-devel/2015-February/045638.html Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
-rw-r--r--hw/xfree86/dri2/dri2.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
index 60ea6dd93..bbff11c9f 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