diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2012-01-12 21:05:39 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2012-01-12 23:12:39 +0000 |
commit | 59b79e5952fdc40f8c50f74a72a19363cb426140 (patch) | |
tree | cf034a8761e9130911f837beeb808f79c9fb2a63 | |
parent | 983b755313df8a0d256c59c32ec4106e35f237aa (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.c | 10 | ||||
-rw-r--r-- | src/sna/gen3_render.c | 11 | ||||
-rw-r--r-- | src/sna/gen4_render.c | 8 | ||||
-rw-r--r-- | src/sna/gen5_render.c | 11 | ||||
-rw-r--r-- | src/sna/gen6_render.c | 11 | ||||
-rw-r--r-- | src/sna/gen7_render.c | 11 |
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 |