summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2016-01-27 11:00:04 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2016-01-27 11:01:35 +0000
commit2bee35a86b77bc7371a81dfa1586398edde56917 (patch)
tree1616b9b7188b6e4b395e03924587417aab23bbca
parent43fffc8ea93bef012928f077981d9bf7bb7c3023 (diff)
sna: Restrict TearFree damage discarding to straightforward copies
If we have a rotation, it is beneficial to keep the amount of work we need to do to a minimum. So restrict commit 9a311f9da612ba02b24458f6a40b6a5445ad4869 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri Feb 13 14:03:16 2015 +0000 sna: Throw away the TearFree damage if it grows too big to only apply to TearFree and not if we have active RandR transforms. Reported-by: Frank Delache <franck.delache@grassvalley.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93864 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/sna/sna_display.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 77dd3bed..9215b232 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -1733,6 +1733,11 @@ bool sna_pixmap_discard_shadow_damage(struct sna_pixmap *priv,
static void sna_mode_damage(DamagePtr damage, RegionPtr region, void *closure)
{
+ struct sna *sna = closure;
+
+ if (sna->mode.rr_active)
+ return;
+
/* Throw away the rectangles if the region grows too big */
region = DamageRegion(damage);
if (region->data) {