diff --git a/src/sna/gen6_common.h b/src/sna/gen6_common.h index bfdd66fa..409bab3b 100644 --- a/src/sna/gen6_common.h +++ b/src/sna/gen6_common.h @@ -106,12 +106,15 @@ static int prefer_blt_bo(struct sna *sna, inline static bool force_blt_ring(struct sna *sna) { - if (sna->flags & SNA_POWERSAVE) - return true; - if (sna->kgem.mode == KGEM_RENDER) return false; + if (NO_RING_SWITCH(sna)) + return sna->kgem.ring == KGEM_BLT; + + if (sna->flags & SNA_POWERSAVE) + return true; + if (sna->render_state.gt < 2) return true;