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))