summaryrefslogtreecommitdiff
path: root/hw
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-03-11 13:14:29 -0500
commiteac170e469cb66a7e5a47d00c56ddc53c63cca85 (patch)
tree4b162b9f108e285041059dee31e2ac344f9bd9b9 /hw
parent2fc1752ac39a9325dbc5f8e700fc566ea6f8240f (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> (cherry picked from commit b7d392931a309d0fe754869efb456ccd0385f3aa)
Diffstat (limited to 'hw')
-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