xf86-video-intel: src/sna/kgem.c

Chris Wilson ickle at kemper.freedesktop.org
Wed Sep 28 16:54:29 PDT 2011


 src/sna/kgem.c |   14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

New commits:
commit d8fe941bc245e24c83c417ccff5c57e83baac3f7
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Sep 28 23:04:03 2011 +0100

    sna: Check for request retires after every batch
    
    In the beginning, I did perform a retire after ever batch. Then I
    decided that it was too much CPU overhead for too little gain. On
    reflection, i.e. further benchmarking, we do see a performance
    improvement for recycling active buffers faster.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 5037425..4dd876b 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -591,12 +591,13 @@ void kgem_retire(struct kgem *kgem)
 	struct kgem_bo *bo, *next;
 
 	list_for_each_entry_safe(bo, next, &kgem->flushing, request) {
-		if (!kgem_busy(kgem, bo->handle)) {
-			bo->needs_flush = 0;
-			bo->gpu = false;
-			list_move(&bo->list, inactive(kgem, bo->size));
-			list_del(&bo->request);
-		}
+		if (kgem_busy(kgem, bo->handle))
+			break;
+
+		bo->needs_flush = 0;
+		bo->gpu = false;
+		list_move(&bo->list, inactive(kgem, bo->size));
+		list_del(&bo->request);
 	}
 
 	while (!list_is_empty(&kgem->requests)) {
@@ -1019,6 +1020,7 @@ void _kgem_submit(struct kgem *kgem)
 		}
 	}
 
+	kgem_retire(kgem);
 	kgem_commit(kgem);
 	if (kgem->wedged)
 		kgem_cleanup(kgem);


More information about the xorg-commit mailing list