xf86-video-intel: src/sna/sna_blt.c
Chris Wilson
ickle at kemper.freedesktop.org
Fri Nov 30 10:29:42 PST 2012
src/sna/sna_blt.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
New commits:
commit 382bb7bf77fca412fdefd7c304f395d1fe9483b5
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Nov 30 16:24:30 2012 +0000
sna/gen6+: Only apply the BLT w/a for self-copies
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_blt.c b/src/sna/sna_blt.c
index ef8b4f1..2248c4d 100644
--- a/src/sna/sna_blt.c
+++ b/src/sna/sna_blt.c
@@ -1256,7 +1256,7 @@ prepare_blt_copy(struct sna *sna,
DBG(("%s\n", __FUNCTION__));
- if (sna->kgem.gen >= 060)
+ if (sna->kgem.gen >= 060 && op->dst.bo == bo)
op->done = gen6_blt_copy_done;
else
op->done = nop_done;
@@ -1942,7 +1942,7 @@ static void convert_done(struct sna *sna, const struct sna_composite_op *op)
{
struct kgem *kgem = &sna->kgem;
- if (kgem->gen >= 060 && kgem_check_batch(kgem, 3)) {
+ if (kgem->gen >= 060 && op->src.bo == op->dst.bo && kgem_check_batch(kgem, 3)) {
uint32_t *b = kgem->batch + kgem->nbatch;
b[0] = XY_SETUP_CLIP;
b[1] = b[2] = 0;
@@ -2185,7 +2185,7 @@ bool sna_blt_copy(struct sna *sna, uint8_t alu,
return false;
op->blt = sna_blt_copy_op_blt;
- if (sna->kgem.gen >= 060)
+ if (sna->kgem.gen >= 060 && src == dst)
op->done = gen6_blt_copy_op_done;
else
op->done = sna_blt_copy_op_done;
More information about the xorg-commit
mailing list