diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2013-10-17 11:32:39 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2013-10-17 11:32:39 +0100 |
commit | efe5c737ed20f2a0b14b479b14eccaf1963d5e01 (patch) | |
tree | 239f1afed04b73adb89b9b12816f86bfaeb7bb2e | |
parent | ec0866e86d365ae3fd9790b1b263d49fc4981220 (diff) |
sna/dri: Refactor to use the common GPU damage routine
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | src/sna/sna_dri.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c index e7b98dae..0b8923b8 100644 --- a/src/sna/sna_dri.c +++ b/src/sna/sna_dri.c @@ -460,7 +460,7 @@ static void sna_dri_reference_buffer(DRI2BufferPtr buffer) get_private(buffer)->refcnt++; } -static void damage(PixmapPtr pixmap, struct sna_pixmap *priv, RegionPtr region) +static inline void damage(PixmapPtr pixmap, struct sna_pixmap *priv, RegionPtr region) { assert(priv->gpu_bo); if (DAMAGE_IS_ALL(priv->gpu_damage)) @@ -472,6 +472,7 @@ damage_all: pixmap->drawable.width, pixmap->drawable.height); sna_damage_destroy(&priv->cpu_damage); + list_del(&priv->flush_list); } else { sna_damage_subtract(&priv->cpu_damage, region); if (priv->cpu_damage == NULL) @@ -512,13 +513,7 @@ static void set_bo(PixmapPtr pixmap, struct kgem_bo *bo) region.data = NULL; DamageRegionAppend(&pixmap->drawable, ®ion); - sna_damage_all(&priv->gpu_damage, - pixmap->drawable.width, - pixmap->drawable.height); - sna_damage_destroy(&priv->cpu_damage); - list_del(&priv->flush_list); - priv->cpu = false; - priv->clear = false; + damage(pixmap, priv, NULL); assert(bo->refcnt); if (priv->gpu_bo != bo) { |