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