From aff32e3e08fce3c7b8dab3a25c96d69c409471fc Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Sun, 25 Dec 2011 00:36:33 +0000 Subject: [PATCH] sna: Tweak damage not to reduce if it will not affect the outcome of reducing to all Signed-off-by: Chris Wilson --- src/sna/sna_damage.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/sna/sna_damage.h b/src/sna/sna_damage.h index d74d5de4..67c44c34 100644 --- a/src/sna/sna_damage.h +++ b/src/sna/sna_damage.h @@ -147,14 +147,15 @@ static inline void sna_damage_reduce_all(struct sna_damage **damage, if (*damage == NULL) return; - if ((*damage)->dirty && (*damage = _sna_damage_reduce(*damage)) == NULL) - return; - if ((*damage)->mode == DAMAGE_ADD && (*damage)->extents.x1 <= 0 && (*damage)->extents.y1 <= 0 && (*damage)->extents.x2 >= width && (*damage)->extents.y2 >= height) { + if ((*damage)->dirty && + (*damage = _sna_damage_reduce(*damage)) == NULL) + return; + if ((*damage)->region.data == NULL) *damage = _sna_damage_all(*damage, width, height); }