summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2017-03-09 11:25:34 +0000
committerAdam Jackson <ajax@redhat.com>2017-03-10 10:56:15 -0500
commit1097bc9c184db4c722d5a8d2c5a4c0da9cdc70f5 (patch)
treee2e41a50726533c2c840b2b2176629b173647e96
parent0ec92f06d4b3bad2e62da24ee7fb64fc88a75820 (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.c16
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);