diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2012-04-23 11:09:37 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2012-04-23 11:09:37 +0100 |
commit | 8c58c840b1ba579a5601804fc710c58e1e00213f (patch) | |
tree | 550636c050bf2e082834bc800a44354e05bd9426 | |
parent | caf9144271a10f90ea580c246b2df3f69a10b7a0 (diff) | |
download | xf86-video-intel-8c58c840b1ba579a5601804fc710c58e1e00213f.tar.gz xf86-video-intel-8c58c840b1ba579a5601804fc710c58e1e00213f.tar.bz2 xf86-video-intel-8c58c840b1ba579a5601804fc710c58e1e00213f.zip |
sna/dri: Always clear the scanout when destroying dri2 buffers
As we may end up holding onto and releasing the Screen pixmap last, we
may also be responsible for flushing the last reference to the scanout.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | src/sna/sna_dri.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c index f4d55e0b5..1a7b6bdb0 100644 --- a/src/sna/sna_dri.c +++ b/src/sna/sna_dri.c @@ -333,6 +333,7 @@ static void _sna_dri_destroy_buffer(struct sna *sna, DRI2Buffer2Ptr buffer) } private->bo->flush = 0; + kgem_bo_clear_scanout(&sna->kgem, private->bo); /* paranoia */ kgem_bo_destroy(&sna->kgem, private->bo); free(buffer); @@ -388,6 +389,7 @@ static void set_bo(PixmapPtr pixmap, struct kgem_bo *bo) sna_damage_destroy(&priv->cpu_damage); priv->undamaged = false; + kgem_bo_clear_scanout(&sna->kgem, priv->gpu_bo); /* paranoia */ kgem_bo_destroy(&sna->kgem, priv->gpu_bo); priv->gpu_bo = ref(bo); } |