summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-06-09 15:53:11 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-06-09 15:53:11 +0100
commit4b54c89fbddc7aa72e5f2c5eded44e84bce70b77 (patch)
tree6d56d66ba49b017e0c34265f60a748c7dda2b977
parent190a6786563aadd69f63bb7b509f3edf712e81ef (diff)
sna: Place the pixmap on the DRI dirty list after damaging the shadow copy
In order that we remember to flush the contents back to the GPU before we wake up the DRI clients, we need to add those dirty pixmaps to the flushing list. I caught the obvious place, the central move-to-cpu, but I missed a couple of paths were we optimise the copy onto the shadow. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/sna/sna_accel.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index ead56dfb..af021b64 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -902,6 +902,8 @@ sna_put_image_blt(DrawablePtr drawable, GCPtr gc, RegionPtr region,
assert_pixmap_contains_box(pixmap, RegionExtents(region));
sna_damage_subtract(&priv->gpu_damage, region);
sna_damage_add(&priv->cpu_damage, region);
+ if (priv->flush)
+ list_move(&priv->list, &sna->dirty_pixmaps);
}
get_drawable_deltas(drawable, pixmap, &dx, &dy);
@@ -1181,6 +1183,9 @@ fallback:
&region);
sna_damage_add(&dst_priv->cpu_damage,
&region);
+ if (dst_priv->flush)
+ list_move(&dst_priv->list,
+ &sna->dirty_pixmaps);
}
} else
sna_drawable_move_region_to_cpu(&dst_pixmap->drawable,