sna: Don't drop expired partial bo immediately, wait until dispatch

As the partial bo may be coupled into the execlist, we may as well hang
onto the memory to service the next partial buffer request until it
expires in the next dispatch.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2012-01-12 00:58:08 +00:00
parent a3c42565a8
commit b09ae4c203
1 changed files with 1 additions and 6 deletions

View File

@ -2335,12 +2335,7 @@ static void _kgem_bo_delete_partial(struct kgem *kgem, struct kgem_bo *bo)
DBG(("%s: size=%d, offset=%d, parent used=%d\n",
__FUNCTION__, bo->size, bo->delta, io->used));
if (bo->size == io->used) {
assert(io->base.exec == NULL);
assert(io->base.refcnt >= 2);
list_del(&io->base.list);
--io->base.refcnt;
} else if (bo->delta + bo->size == io->used) {
if (bo->delta + bo->size == io->used) {
io->used = bo->delta;
bubble_sort_partial(kgem, io);
}