summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2015-08-07 15:26:30 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2015-08-07 15:26:30 +0100
commit07bcd3f0c715a37ac24a630173e0e28056567421 (patch)
tree40fb0cf24bd1336325617666685cc914cabba030
parent3f128867d957e30690218404337b00bb327e647b (diff)
sna: Use direct uploads into a Damage tracked for v.small operations
If the batch is being frequently flushed due to Damage+Composite tracking, we cannot amalgamate the small copies into the destination and so end up sending thousands and thousands of tiny batches with tiny render copies hogging the GPU. References: https://bugs.freedesktop.org/show_bug.cgi?id=91577 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/sna/sna_io.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/sna/sna_io.c b/src/sna/sna_io.c
index db317ee4..6bf87eec 100644
--- a/src/sna/sna_io.c
+++ b/src/sna/sna_io.c
@@ -797,7 +797,7 @@ static bool __upload_inplace(struct kgem *kgem,
bytes += (box->x2 - box->x1) * (box->y2 - box->y1);
box++;
}
- if (__kgem_bo_is_busy(kgem, bo))
+ if (!bo->flush && __kgem_bo_is_busy(kgem, bo))
return bytes * bpp >> 12 >= kgem->half_cpu_cache_pages;
else
return bytes * bpp >> 12;