From b335d369bbcbfaef878795a5c8e72c2d40d3a536 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Sat, 11 Aug 2012 12:59:49 +0100 Subject: [PATCH] sna: Discard the GPU bo after syncing to CPU bo for writing Signed-off-by: Chris Wilson --- src/sna/sna_accel.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c index 227bb015..4e3e9eb5 100644 --- a/src/sna/sna_accel.c +++ b/src/sna/sna_accel.c @@ -1400,9 +1400,13 @@ done: assert(priv->gpu_bo == NULL || priv->gpu_bo->proxy == NULL); } - if ((flags & MOVE_ASYNC_HINT) == 0 && priv->cpu_bo) { - DBG(("%s: syncing CPU bo\n", __FUNCTION__)); - kgem_bo_sync__cpu(&sna->kgem, priv->cpu_bo); + if (priv->cpu_bo) { + if ((flags & MOVE_ASYNC_HINT) == 0) { + DBG(("%s: syncing CPU bo\n", __FUNCTION__)); + kgem_bo_sync__cpu(&sna->kgem, priv->cpu_bo); + } + if (flags & MOVE_WRITE) + sna_pixmap_free_gpu(sna, priv); } priv->cpu = (flags & MOVE_ASYNC_HINT) == 0; assert(pixmap->devPrivate.ptr);