summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2013-02-11 22:06:00 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2013-02-11 22:09:22 +0000
commit2667b821e193c0badf16420f82f8a99a93c27a46 (patch)
tree7db658ba436c52adde448bfafe7a8ff96039c14b
parenta4442045df9164651702b166e0de2bfd25e8a76f (diff)
sna/dri: Update flush status for tear-free exported GPU bo
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/sna/sna_display.c1
-rw-r--r--src/sna/sna_dri.c4
2 files changed, 4 insertions, 1 deletions
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 558d7062..a294f7cd 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -3382,7 +3382,6 @@ disable:
sna_dri_pixmap_update_bo(sna, sna->front);
sna->mode.shadow = new;
- new->flush = old->flush;
}
RegionEmpty(region);
diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c
index ebdd66a7..89e3410d 100644
--- a/src/sna/sna_dri.c
+++ b/src/sna/sna_dri.c
@@ -219,10 +219,14 @@ sna_dri_pixmap_update_bo(struct sna *sna, PixmapPtr pixmap)
if (private->bo == bo)
return;
+ private->bo->flush = false;
kgem_bo_destroy(&sna->kgem, private->bo);
+
buffer->name = kgem_bo_flink(&sna->kgem, bo);
private->bo = ref(bo);
+ assert(bo->flush);
+
/* XXX DRI2InvalidateDrawable(&pixmap->drawable); */
}