summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2014-06-30 19:56:39 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2014-06-30 21:18:58 +0100
commite1c3e6ce79c73d12c814cfda76dbc0df184902ee (patch)
tree7f6a720bb93b49a99bce1fdf95d8b5b1c5424f0d
parent43176b9bfafe389c4b9ed676f4e50e3b06f858c4 (diff)
sna: Add DBG breadcrumbs before flushes in BLT
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/sna/sna_blt.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/sna/sna_blt.c b/src/sna/sna_blt.c
index d6f986a1..9b4d0bc8 100644
--- a/src/sna/sna_blt.c
+++ b/src/sna/sna_blt.c
@@ -89,8 +89,10 @@ static const uint8_t fill_ROP[] = {
static void nop_done(struct sna *sna, const struct sna_composite_op *op)
{
assert(sna->kgem.nbatch <= KGEM_BATCH_SIZE(&sna->kgem));
- if (sna->kgem.nexec > 1 && __kgem_ring_empty(&sna->kgem))
+ if (sna->kgem.nexec > 1 && __kgem_ring_empty(&sna->kgem)) {
+ DBG(("%s: flushing BLT operation on empty ring\n", __FUNCTION__));
_kgem_submit(&sna->kgem);
+ }
(void)op;
}
@@ -100,6 +102,7 @@ static void gen6_blt_copy_done(struct sna *sna, const struct sna_composite_op *o
assert(kgem->nbatch <= KGEM_BATCH_SIZE(kgem));
if (kgem->nexec > 1 && __kgem_ring_empty(kgem)) {
+ DBG(("%s: flushing BLT operation on empty ring\n", __FUNCTION__));
_kgem_submit(kgem);
return;
}
@@ -2865,8 +2868,10 @@ static void convert_done(struct sna *sna, const struct sna_composite_op *op)
struct kgem *kgem = &sna->kgem;
assert(kgem->nbatch <= KGEM_BATCH_SIZE(kgem));
- if (kgem->nexec > 1 && __kgem_ring_empty(kgem))
+ if (kgem->nexec > 1 && __kgem_ring_empty(kgem)) {
+ DBG(("%s: flushing BLT operation on empty ring\n", __FUNCTION__));
_kgem_submit(kgem);
+ }
kgem_bo_destroy(kgem, op->src.bo);
sna_render_composite_redirect_done(sna, op);
@@ -3620,8 +3625,10 @@ bool sna_blt_fill_boxes(struct sna *sna, uint8_t alu,
}
} while (nbox);
- if (kgem->nexec > 1 && __kgem_ring_empty(kgem))
+ if (kgem->nexec > 1 && __kgem_ring_empty(kgem)) {
+ DBG(("%s: flushing BLT operation on empty ring\n", __FUNCTION__));
_kgem_submit(kgem);
+ }
return true;
}
@@ -3944,6 +3951,7 @@ bool sna_blt_copy_boxes(struct sna *sna, uint8_t alu,
}
if (kgem->nexec > 1 && __kgem_ring_empty(kgem)) {
+ DBG(("%s: flushing BLT operation on empty ring\n", __FUNCTION__));
_kgem_submit(kgem);
} else if (kgem->gen >= 060 && src_bo == dst_bo && kgem_check_batch(kgem, 3)) {
uint32_t *b = kgem->batch + kgem->nbatch;
@@ -4093,8 +4101,10 @@ bool sna_blt_copy_boxes__with_alpha(struct sna *sna, uint8_t alu,
box++;
}
- if (kgem->nexec > 1 && __kgem_ring_empty(kgem))
+ if (kgem->nexec > 1 && __kgem_ring_empty(kgem)) {
+ DBG(("%s: flushing BLT operation on empty ring\n", __FUNCTION__));
_kgem_submit(kgem);
+ }
sna->blt_state.fill_bo = 0;
return true;