summaryrefslogtreecommitdiff
path: root/src/sna/gen6_render.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-10-28 18:00:56 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-10-28 18:00:56 +0100
commit15266e1b9500f6b348661c60d1982bde911f2d0e (patch)
treebd4eb40c9cf65f8a414d047a82ad404c223aa92f /src/sna/gen6_render.c
parentd3c7ee921172d4898ebdc6e944812a02426008e9 (diff)
sna: Don't flush the render caches if in the process of writing again
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna/gen6_render.c')
-rw-r--r--src/sna/gen6_render.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c
index 0dde6253..1abb54f6 100644
--- a/src/sna/gen6_render.c
+++ b/src/sna/gen6_render.c
@@ -2248,7 +2248,8 @@ gen6_render_composite(struct sna *sna,
NULL))
kgem_submit(&sna->kgem);
- if (kgem_bo_is_dirty(tmp->src.bo) || kgem_bo_is_dirty(tmp->mask.bo))
+ if ((tmp->src.bo != tmp->dst.bo && kgem_bo_is_dirty(tmp->src.bo)) ||
+ (tmp->mask.bo && tmp->mask.bo != tmp->dst.bo && kgem_bo_is_dirty(tmp->mask.bo)))
kgem_emit_flush(&sna->kgem);
gen6_emit_composite_state(sna, tmp);