From 52405b2aed492dc7f76fbf082122842f621e7c06 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Fri, 7 Dec 2012 17:24:42 +0000 Subject: sna: Only inspect the target ring for busyness Signed-off-by: Chris Wilson --- src/sna/kgem.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/sna/kgem.h') diff --git a/src/sna/kgem.h b/src/sna/kgem.h index 8a3a4fa2..ccefc48f 100644 --- a/src/sna/kgem.h +++ b/src/sna/kgem.h @@ -274,6 +274,7 @@ int kgem_bo_get_swizzling(struct kgem *kgem, struct kgem_bo *bo); void kgem_bo_retire(struct kgem *kgem, struct kgem_bo *bo); bool kgem_retire(struct kgem *kgem); + bool __kgem_is_idle(struct kgem *kgem); static inline bool kgem_is_idle(struct kgem *kgem) { @@ -285,6 +286,15 @@ static inline bool kgem_is_idle(struct kgem *kgem) return __kgem_is_idle(kgem); } +bool __kgem_ring_is_idle(struct kgem *kgem, int ring); +static inline bool kgem_ring_is_idle(struct kgem *kgem, int ring) +{ + if (list_is_empty(&kgem->requests[ring])) + return true; + + return __kgem_ring_is_idle(kgem, ring); +} + void _kgem_submit(struct kgem *kgem); static inline void kgem_submit(struct kgem *kgem) { @@ -294,7 +304,7 @@ static inline void kgem_submit(struct kgem *kgem) static inline bool kgem_flush(struct kgem *kgem) { - return kgem->flush && list_is_empty(&kgem->requests[kgem->ring]); + return kgem->flush && kgem_ring_is_idle(kgem, kgem->ring); } static inline void kgem_bo_submit(struct kgem *kgem, struct kgem_bo *bo) -- cgit v1.2.3