From ddcd8607027c67f8260ffd4eae8543f832885cb8 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Thu, 10 Oct 2013 12:18:31 +0100 Subject: sna/gen6+: Only allow switching to BLT for fills if we have semaphores An extra caveat to these generations for commit 97d809c26bec2c0120f2dc0bcfd840379bd996fa Author: Chris Wilson Date: Thu Oct 10 00:15:55 2013 +0100 sna: Pass usage hint down to render fill routines is that we don't want to incur ring switch overheads that may overwhelm any advantages from using the BLT. Signed-off-by: Chris Wilson --- src/sna/gen6_render.c | 3 ++- src/sna/gen7_render.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c index 3773c27e..4084c58f 100644 --- a/src/sna/gen6_render.c +++ b/src/sna/gen6_render.c @@ -3116,7 +3116,8 @@ static inline bool prefer_blt_fill(struct sna *sna, if (PREFER_RENDER) return PREFER_RENDER < 0; - if (flags & (FILL_POINTS | FILL_SPANS)) + if (flags & (FILL_POINTS | FILL_SPANS) && + can_switch_to_blt(sna, bo, 0)) return true; if (untiled_tlb_miss(bo)) diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c index 37eb8dd9..e9295299 100644 --- a/src/sna/gen7_render.c +++ b/src/sna/gen7_render.c @@ -3349,7 +3349,8 @@ static inline bool prefer_blt_fill(struct sna *sna, struct kgem_bo *bo, unsigned flags) { - if (flags & (FILL_POINTS | FILL_SPANS)) + if (flags & (FILL_POINTS | FILL_SPANS) && + can_switch_to_blt(sna, bo, 0)) return true; if (untiled_tlb_miss(bo)) -- cgit v1.2.3