diff --git a/src/sna/gen2_render.c b/src/sna/gen2_render.c index 8f923382..8e26ecdf 100644 --- a/src/sna/gen2_render.c +++ b/src/sna/gen2_render.c @@ -3214,7 +3214,7 @@ gen2_render_context_switch(struct kgem *kgem, { struct sna *sna = container_of(kgem, struct sna, kgem); - if (!kgem->mode) + if (!kgem->nbatch) return; /* Reload BLT registers following a lost context */ diff --git a/src/sna/gen5_render.c b/src/sna/gen5_render.c index 9b388786..7f0e8fb5 100644 --- a/src/sna/gen5_render.c +++ b/src/sna/gen5_render.c @@ -3571,7 +3571,7 @@ static void gen5_render_context_switch(struct kgem *kgem, int new_mode) { - if (!kgem->mode) + if (!kgem->nbatch) return; /* WaNonPipelinedStateCommandFlush diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c index bb3bbbad..7f17c717 100644 --- a/src/sna/gen6_render.c +++ b/src/sna/gen6_render.c @@ -2405,7 +2405,7 @@ static bool prefer_blt_ring(struct sna *sna) return sna->kgem.ring != KGEM_RENDER; } -static bool can_switch_to_blt(struct sna *sna) +inline static bool can_switch_to_blt(struct sna *sna) { if (sna->kgem.ring != KGEM_RENDER) return true; @@ -4191,13 +4191,10 @@ static void gen6_render_context_switch(struct kgem *kgem, int new_mode) { - if (!new_mode) - return; - - DBG(("%s: from %d to %d\n", __FUNCTION__, kgem->mode, new_mode)); - - if (kgem->mode) - kgem_submit(kgem); + if (kgem->nbatch) { + DBG(("%s: from %d to %d\n", __FUNCTION__, kgem->mode, new_mode)); + _kgem_submit(kgem); + } kgem->ring = new_mode; } diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c index 06bef75e..f74f56e8 100644 --- a/src/sna/gen7_render.c +++ b/src/sna/gen7_render.c @@ -4252,13 +4252,10 @@ static void gen7_render_context_switch(struct kgem *kgem, int new_mode) { - if (!new_mode) - return; - - if (kgem->mode) { + if (kgem->nbatch) { DBG(("%s: switch rings %d -> %d\n", __FUNCTION__, kgem->mode, new_mode)); - kgem_submit(kgem); + _kgem_submit(kgem); } kgem->ring = new_mode; diff --git a/src/sna/kgem.h b/src/sna/kgem.h index c23b9e33..c5199c2d 100644 --- a/src/sna/kgem.h +++ b/src/sna/kgem.h @@ -354,7 +354,7 @@ static inline void kgem_set_mode(struct kgem *kgem, #endif if (kgem->nexec && bo->exec == NULL && kgem_ring_is_idle(kgem, kgem->ring)) - kgem_submit(kgem); + _kgem_submit(kgem); if (kgem->mode == mode) return; diff --git a/src/sna/sna_render.c b/src/sna/sna_render.c index 994f0a63..e92c4530 100644 --- a/src/sna/sna_render.c +++ b/src/sna/sna_render.c @@ -246,7 +246,7 @@ static void no_render_context_switch(struct kgem *kgem, int new_mode) { - if (!kgem->mode) + if (!kgem->nbatch) return; if (kgem_ring_is_idle(kgem, kgem->ring)) { @@ -254,7 +254,6 @@ no_render_context_switch(struct kgem *kgem, _kgem_submit(kgem); } - (void)kgem; (void)new_mode; }