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 /src/sna/sna_dri.c | |
parent | caf9144271a10f90ea580c246b2df3f69a10b7a0 (diff) |
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>
Diffstat (limited to 'src/sna/sna_dri.c')
-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 f4d55e0b..1a7b6bdb 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); } |