summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-01-12 21:05:39 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2012-01-12 23:12:39 +0000
commit59b79e5952fdc40f8c50f74a72a19363cb426140 (patch)
treecf034a8761e9130911f837beeb808f79c9fb2a63
parent983b755313df8a0d256c59c32ec4106e35f237aa (diff)
sna: Reorder composite-done to destroy mask bo before source bo
Just in the unlikely event that we hit the delete-partial-upload path which prefers destroying the last bo first. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/sna/gen2_render.c10
-rw-r--r--src/sna/gen3_render.c11
-rw-r--r--src/sna/gen4_render.c8
-rw-r--r--src/sna/gen5_render.c11
-rw-r--r--src/sna/gen6_render.c11
-rw-r--r--src/sna/gen7_render.c11
6 files changed, 33 insertions, 29 deletions
diff --git a/src/sna/gen2_render.c b/src/sna/gen2_render.c
index 30dd6941..16607636 100644
--- a/src/sna/gen2_render.c
+++ b/src/sna/gen2_render.c
@@ -1077,12 +1077,11 @@ static void gen2_render_composite_done(struct sna *sna,
sna->render.op = NULL;
_kgem_set_mode(&sna->kgem, KGEM_RENDER);
- sna_render_composite_redirect_done(sna, op);
-
- if (op->src.bo)
- kgem_bo_destroy(&sna->kgem, op->src.bo);
if (op->mask.bo)
kgem_bo_destroy(&sna->kgem, op->mask.bo);
+ if (op->src.bo)
+ kgem_bo_destroy(&sna->kgem, op->src.bo);
+ sna_render_composite_redirect_done(sna, op);
}
static Bool
@@ -2111,9 +2110,10 @@ gen2_render_composite_spans_done(struct sna *sna,
DBG(("%s()\n", __FUNCTION__));
- sna_render_composite_redirect_done(sna, &op->base);
if (op->base.src.bo)
kgem_bo_destroy(&sna->kgem, op->base.src.bo);
+
+ sna_render_composite_redirect_done(sna, &op->base);
}
static Bool
diff --git a/src/sna/gen3_render.c b/src/sna/gen3_render.c
index f5946c12..51469dd1 100644
--- a/src/sna/gen3_render.c
+++ b/src/sna/gen3_render.c
@@ -1749,12 +1749,12 @@ gen3_render_composite_done(struct sna *sna,
DBG(("%s()\n", __FUNCTION__));
- sna_render_composite_redirect_done(sna, op);
-
- if (op->src.bo)
- kgem_bo_destroy(&sna->kgem, op->src.bo);
if (op->mask.bo)
kgem_bo_destroy(&sna->kgem, op->mask.bo);
+ if (op->src.bo)
+ kgem_bo_destroy(&sna->kgem, op->src.bo);
+
+ sna_render_composite_redirect_done(sna, op);
}
static void
@@ -3021,9 +3021,10 @@ gen3_render_composite_spans_done(struct sna *sna,
DBG(("%s()\n", __FUNCTION__));
- sna_render_composite_redirect_done(sna, &op->base);
if (op->base.src.bo)
kgem_bo_destroy(&sna->kgem, op->base.src.bo);
+
+ sna_render_composite_redirect_done(sna, &op->base);
}
static Bool
diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c
index e9fa94bb..31468366 100644
--- a/src/sna/gen4_render.c
+++ b/src/sna/gen4_render.c
@@ -1816,12 +1816,12 @@ gen4_render_composite_done(struct sna *sna,
DBG(("%s()\n", __FUNCTION__));
- sna_render_composite_redirect_done(sna, op);
-
- if (op->src.bo)
- kgem_bo_destroy(&sna->kgem, op->src.bo);
if (op->mask.bo)
kgem_bo_destroy(&sna->kgem, op->mask.bo);
+ if (op->src.bo)
+ kgem_bo_destroy(&sna->kgem, op->src.bo);
+
+ sna_render_composite_redirect_done(sna, op);
}
static Bool
diff --git a/src/sna/gen5_render.c b/src/sna/gen5_render.c
index 6d4cf6ef..017b7ce5 100644
--- a/src/sna/gen5_render.c
+++ b/src/sna/gen5_render.c
@@ -1852,12 +1852,12 @@ gen5_render_composite_done(struct sna *sna,
DBG(("%s()\n", __FUNCTION__));
- sna_render_composite_redirect_done(sna, op);
-
- if (op->src.bo)
- kgem_bo_destroy(&sna->kgem, op->src.bo);
if (op->mask.bo)
kgem_bo_destroy(&sna->kgem, op->mask.bo);
+ if (op->src.bo)
+ kgem_bo_destroy(&sna->kgem, op->src.bo);
+
+ sna_render_composite_redirect_done(sna, op);
}
static Bool
@@ -2479,9 +2479,10 @@ gen5_render_composite_spans_done(struct sna *sna,
DBG(("%s()\n", __FUNCTION__));
- sna_render_composite_redirect_done(sna, &op->base);
if (op->base.src.bo)
kgem_bo_destroy(&sna->kgem, op->base.src.bo);
+
+ sna_render_composite_redirect_done(sna, &op->base);
}
static Bool
diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c
index b1a0905f..047c0559 100644
--- a/src/sna/gen6_render.c
+++ b/src/sna/gen6_render.c
@@ -2050,12 +2050,12 @@ static void gen6_render_composite_done(struct sna *sna,
_kgem_set_mode(&sna->kgem, KGEM_RENDER);
sna->render.op = NULL;
- sna_render_composite_redirect_done(sna, op);
-
- if (op->src.bo)
- kgem_bo_destroy(&sna->kgem, op->src.bo);
if (op->mask.bo)
kgem_bo_destroy(&sna->kgem, op->mask.bo);
+ if (op->src.bo)
+ kgem_bo_destroy(&sna->kgem, op->src.bo);
+
+ sna_render_composite_redirect_done(sna, op);
}
static Bool
@@ -2773,9 +2773,10 @@ gen6_render_composite_spans_done(struct sna *sna,
DBG(("%s()\n", __FUNCTION__));
- sna_render_composite_redirect_done(sna, &op->base);
if (op->base.src.bo)
kgem_bo_destroy(&sna->kgem, op->base.src.bo);
+
+ sna_render_composite_redirect_done(sna, &op->base);
}
static Bool
diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index 2d85a1b2..c00548ee 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -2144,12 +2144,12 @@ static void gen7_render_composite_done(struct sna *sna,
_kgem_set_mode(&sna->kgem, KGEM_RENDER);
sna->render.op = NULL;
- sna_render_composite_redirect_done(sna, op);
-
- if (op->src.bo)
- kgem_bo_destroy(&sna->kgem, op->src.bo);
if (op->mask.bo)
kgem_bo_destroy(&sna->kgem, op->mask.bo);
+ if (op->src.bo)
+ kgem_bo_destroy(&sna->kgem, op->src.bo);
+
+ sna_render_composite_redirect_done(sna, op);
}
static Bool
@@ -2780,9 +2780,10 @@ gen7_render_composite_spans_done(struct sna *sna,
DBG(("%s()\n", __FUNCTION__));
- sna_render_composite_redirect_done(sna, &op->base);
if (op->base.src.bo)
kgem_bo_destroy(&sna->kgem, op->base.src.bo);
+
+ sna_render_composite_redirect_done(sna, &op->base);
}
static Bool