diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2017-03-09 11:25:34 +0000 |
---|---|---|
committer | Adam Jackson <ajax@redhat.com> | 2017-03-10 10:56:15 -0500 |
commit | 1097bc9c184db4c722d5a8d2c5a4c0da9cdc70f5 (patch) | |
tree | e2e41a50726533c2c840b2b2176629b173647e96 | |
parent | 0ec92f06d4b3bad2e62da24ee7fb64fc88a75820 (diff) |
Revert "prime: Sync shared pixmap from root window instead of screen pixmap"
This reverts commit b5b292896f647c85f03f53b20b2f03c0e94de428.
This breaks the concept of the screen->pixmap_dirty_list as it no longer
tracks the relationship between the PixmapDirtyUpdate src and slave_dst,
for the supposed convenience of not tracking present flips.
Bugzilla: https://bugs.freedesktop.org/100086
Reviewed-by: Adam Jackson <ajax@redhat.com>
-rw-r--r-- | dix/pixmap.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/dix/pixmap.c b/dix/pixmap.c index b67a2e8a6..7a6402411 100644 --- a/dix/pixmap.c +++ b/dix/pixmap.c @@ -241,8 +241,7 @@ PixmapStartDirtyTracking(PixmapPtr src, RegionUnion(damageregion, damageregion, &dstregion); RegionUninit(&dstregion); - DamageRegister(screen->root ? &screen->root->drawable : &src->drawable, - dirty_update->damage); + DamageRegister(&src->drawable, dirty_update->damage); xorg_list_add(&dirty_update->ent, &screen->pixmap_dirty_list); return TRUE; } @@ -270,7 +269,6 @@ PixmapDirtyCopyArea(PixmapPtr dst, RegionPtr dirty_region) { ScreenPtr pScreen = dirty->src->drawable.pScreen; - DrawablePtr src = pScreen->root ? &pScreen->root->drawable : &dirty->src->drawable; int n; BoxPtr b; GCPtr pGC; @@ -278,13 +276,7 @@ PixmapDirtyCopyArea(PixmapPtr dst, n = RegionNumRects(dirty_region); b = RegionRects(dirty_region); - pGC = GetScratchGC(src->depth, pScreen); - if (pScreen->root) { - ChangeGCVal subWindowMode; - - subWindowMode.val = IncludeInferiors; - ChangeGC(NullClient, pGC, GCSubwindowMode, &subWindowMode); - } + pGC = GetScratchGC(dirty->src->drawable.depth, pScreen); ValidateGC(&dst->drawable, pGC); while (n--) { @@ -295,7 +287,7 @@ PixmapDirtyCopyArea(PixmapPtr dst, w = dst_box.x2 - dst_box.x1; h = dst_box.y2 - dst_box.y1; - pGC->ops->CopyArea(src, &dst->drawable, pGC, + pGC->ops->CopyArea(&dirty->src->drawable, &dst->drawable, pGC, dirty->x + dst_box.x1, dirty->y + dst_box.y1, w, h, dirty->dst_x + dst_box.x1, dirty->dst_y + dst_box.y1); @@ -318,7 +310,7 @@ PixmapDirtyCompositeRotate(PixmapPtr dst_pixmap, int error; src = CreatePicture(None, - &pScreen->root->drawable, + &dirty->src->drawable, format, CPSubwindowMode, &include_inferiors, serverClient, &error); |