From 68632e100034ae7cf3086a85f5d6f38cd9a94adc Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Tue, 31 Mar 2015 15:01:10 +0100 Subject: [PATCH] sna: Use more explicit retire-requests after syncing Signed-off-by: Chris Wilson --- src/sna/kgem.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/sna/kgem.c b/src/sna/kgem.c index 63eda3a3..4565f24b 100644 --- a/src/sna/kgem.c +++ b/src/sna/kgem.c @@ -299,6 +299,7 @@ static void assert_bo_retired(struct kgem_bo *bo) assert(bo->refcnt); assert(bo->rq == NULL); assert(bo->exec == NULL); + assert(!bo->needs_flush); assert(list_is_empty(&bo->request)); } #else @@ -639,16 +640,10 @@ static void kgem_bo_retire(struct kgem *kgem, struct kgem_bo *bo) assert(bo->exec == NULL); assert(list_is_empty(&bo->vma)); - if (bo->rq) { - __kgem_bo_clear_busy(bo); - kgem_retire(kgem); - assert_bo_retired(bo); - } else { - assert(bo->exec == NULL); - assert(list_is_empty(&bo->request)); - assert(!bo->needs_flush); - ASSERT_IDLE(kgem, bo->handle); - } + if (bo->rq) + __kgem_retire_requests_upto(kgem, bo); + ASSERT_IDLE(kgem, bo->handle); + assert_bo_retired(bo); } static void kgem_bo_maybe_retire(struct kgem *kgem, struct kgem_bo *bo) @@ -660,10 +655,8 @@ static void kgem_bo_maybe_retire(struct kgem *kgem, struct kgem_bo *bo) assert(list_is_empty(&bo->vma)); if (bo->rq) { - if (!__kgem_busy(kgem, bo->handle)) { - __kgem_bo_clear_busy(bo); - kgem_retire(kgem); - } + if (!__kgem_busy(kgem, bo->handle)) + __kgem_retire_requests_upto(kgem, bo); } else { assert(!bo->needs_flush); ASSERT_IDLE(kgem, bo->handle);