summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-10-30 11:22:26 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2011-10-30 11:23:23 +0000
commit2d3aba8518ae790325c6123dacc3ce73b6e91cbd (patch)
tree1bbca42be3c83ea140e36551d8401c43b147c0a1
parentd4062705178856cffc83030fa40f758e9d884566 (diff)
Revert "sna: Don't flush the render caches if in the process of writing again"
This reverts commit 15266e1b9500f6b348661c60d1982bde911f2d0e. KDE relies upon the ability to render into a sampler and then render upon itself. Not the first sign of madness... Will have to find another way of winning back the compwinwin performance.
-rw-r--r--src/sna/gen2_render.c3
-rw-r--r--src/sna/gen3_render.c3
-rw-r--r--src/sna/gen4_render.c3
-rw-r--r--src/sna/gen5_render.c3
-rw-r--r--src/sna/gen6_render.c3
-rw-r--r--src/sna/gen7_render.c3
6 files changed, 6 insertions, 12 deletions
diff --git a/src/sna/gen2_render.c b/src/sna/gen2_render.c
index f8e71e7e..d2a296cc 100644
--- a/src/sna/gen2_render.c
+++ b/src/sna/gen2_render.c
@@ -1375,8 +1375,7 @@ gen2_render_composite(struct sna *sna,
NULL))
kgem_submit(&sna->kgem);
- 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))) {
+ if (kgem_bo_is_dirty(tmp->src.bo) || kgem_bo_is_dirty(tmp->mask.bo)) {
if (tmp->src.bo == tmp->dst.bo || tmp->mask.bo == tmp->dst.bo) {
kgem_emit_flush(&sna->kgem);
} else {
diff --git a/src/sna/gen3_render.c b/src/sna/gen3_render.c
index e21ea6c1..eca841ec 100644
--- a/src/sna/gen3_render.c
+++ b/src/sna/gen3_render.c
@@ -2479,8 +2479,7 @@ gen3_render_composite(struct sna *sna,
NULL))
kgem_submit(&sna->kgem);
- 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))) {
+ if (kgem_bo_is_dirty(tmp->src.bo) || kgem_bo_is_dirty(tmp->mask.bo)) {
if (tmp->src.bo == tmp->dst.bo || tmp->mask.bo == tmp->dst.bo) {
kgem_emit_flush(&sna->kgem);
} else {
diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c
index 9fa22782..c603e67a 100644
--- a/src/sna/gen4_render.c
+++ b/src/sna/gen4_render.c
@@ -2058,8 +2058,7 @@ gen4_render_composite(struct sna *sna,
NULL))
kgem_submit(&sna->kgem);
- 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)))
+ if (kgem_bo_is_dirty(tmp->src.bo) || kgem_bo_is_dirty(tmp->mask.bo))
kgem_emit_flush(&sna->kgem);
gen4_bind_surfaces(sna, tmp);
diff --git a/src/sna/gen5_render.c b/src/sna/gen5_render.c
index b33125ca..3006bd15 100644
--- a/src/sna/gen5_render.c
+++ b/src/sna/gen5_render.c
@@ -2078,8 +2078,7 @@ gen5_render_composite(struct sna *sna,
tmp->dst.bo, tmp->src.bo, tmp->mask.bo, NULL))
kgem_submit(&sna->kgem);
- 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)))
+ if (kgem_bo_is_dirty(tmp->src.bo) || kgem_bo_is_dirty(tmp->mask.bo))
kgem_emit_flush(&sna->kgem);
gen5_bind_surfaces(sna, tmp);
diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c
index 6a132ada..b7f0ed08 100644
--- a/src/sna/gen6_render.c
+++ b/src/sna/gen6_render.c
@@ -2248,8 +2248,7 @@ gen6_render_composite(struct sna *sna,
NULL))
kgem_submit(&sna->kgem);
- 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)))
+ if (kgem_bo_is_dirty(tmp->src.bo) || kgem_bo_is_dirty(tmp->mask.bo))
kgem_emit_flush(&sna->kgem);
gen6_emit_composite_state(sna, tmp);
diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index 3f9e59a3..4667badc 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -2388,8 +2388,7 @@ gen7_render_composite(struct sna *sna,
NULL))
kgem_submit(&sna->kgem);
- 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)))
+ if (kgem_bo_is_dirty(tmp->src.bo) || kgem_bo_is_dirty(tmp->mask.bo))
kgem_emit_flush(&sna->kgem);
gen7_emit_composite_state(sna, tmp);