summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2013-10-30 10:02:28 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2013-10-30 13:42:44 +0000
commit4d13d52258702f2581ca4f695b69e4dc8f510581 (patch)
tree70242f05ef5494fb1c4ce6d9d92d6ecbb1999b55 /src
parent59531ba31aa479497cb76b67ea972d1cfa6aec79 (diff)
sna: Queue retirement when placing a BO on the deferred flushing list
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src')
-rw-r--r--src/sna/kgem.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 6afbec76..7c0ad119 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -2183,6 +2183,7 @@ static bool __kgem_retire_rq(struct kgem *kgem, struct kgem_request *rq)
__FUNCTION__, bo->handle));
list_add(&bo->request, &kgem->flushing);
bo->rq = MAKE_REQUEST(kgem, RQ_RING(bo->rq));
+ kgem->need_retire = true;
continue;
}
@@ -2710,6 +2711,7 @@ void kgem_reset(struct kgem *kgem)
assert(bo->domain == DOMAIN_GPU || bo->domain == DOMAIN_NONE);
list_add(&bo->request, &kgem->flushing);
bo->rq = (void *)kgem;
+ kgem->need_retire = true;
} else
__kgem_bo_clear_busy(bo);
@@ -3952,6 +3954,7 @@ __kgem_bo_create_as_display(struct kgem *kgem, int size, int tiling, int pitch)
assert(bo->exec == NULL);
list_add(&bo->request, &kgem->flushing);
bo->rq = (void *)kgem;
+ kgem->need_retire = true;
}
assert_tiling(kgem, bo);