diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2015-08-07 15:26:30 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2015-08-07 15:26:30 +0100 |
commit | 07bcd3f0c715a37ac24a630173e0e28056567421 (patch) | |
tree | 40fb0cf24bd1336325617666685cc914cabba030 | |
parent | 3f128867d957e30690218404337b00bb327e647b (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.c | 2 |
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; |