summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/sna/kgem.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 4f2d39a3..aa98ceac 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -916,13 +916,17 @@ static void __kgem_bo_destroy(struct kgem *kgem, struct kgem_bo *bo)
assert(bo->exec == NULL);
assert(list_is_empty(&bo->request));
- if (bo->needs_flush &&
- (bo->needs_flush = kgem_busy(kgem, bo->handle))) {
- DBG(("%s: handle=%d -> flushing\n", __FUNCTION__, bo->handle));
- list_add(&bo->request, &kgem->flushing);
- list_add(&bo->list, &kgem->active[bo->bucket]);
- bo->rq = &_kgem_static_request;
- return;
+ if (bo->needs_flush) {
+ if ((bo->needs_flush = kgem_busy(kgem, bo->handle))) {
+ DBG(("%s: handle=%d -> flushing\n",
+ __FUNCTION__, bo->handle));
+ list_add(&bo->request, &kgem->flushing);
+ list_add(&bo->list, &kgem->active[bo->bucket]);
+ bo->rq = &_kgem_static_request;
+ return;
+ }
+
+ bo->domain = DOMAIN_NONE;
}
if (!IS_CPU_MAP(bo->map)) {