Module: Mesa Branch: master Commit: 8d2876a34314e7378eff67a5f320eba56683dba3 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8d2876a34314e7378eff67a5f320eba56683dba3
Author: Marek Olšák <[email protected]> Date: Fri Oct 16 11:37:16 2020 -0400 radeonsi: only do VGT_FLUSH for fast launch if previous draw was normal launch Fixes: 3da91b3327f - radeonsi/ngg: add VGT_FLUSH when enabling fast launch Reviewed-by: Pierre-Eric Pelloux-Prayer <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542> --- src/gallium/drivers/radeonsi/si_gfx_cs.c | 4 ++++ src/gallium/drivers/radeonsi/si_state_draw.c | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/si_gfx_cs.c b/src/gallium/drivers/radeonsi/si_gfx_cs.c index 4747ffd5a35..2ce9540b0aa 100644 --- a/src/gallium/drivers/radeonsi/si_gfx_cs.c +++ b/src/gallium/drivers/radeonsi/si_gfx_cs.c @@ -425,6 +425,10 @@ void si_begin_new_gfx_cs(struct si_context *ctx, bool first_cs) ctx->flags |= SI_CONTEXT_INV_ICACHE | SI_CONTEXT_INV_SCACHE | SI_CONTEXT_INV_VCACHE | SI_CONTEXT_INV_L2 | SI_CONTEXT_START_PIPELINE_STATS; + /* We don't know if the last draw call used GS fast launch, so assume it didn't. */ + if (ctx->ngg_culling & SI_NGG_CULL_GS_FAST_LAUNCH_ALL) + ctx->flags |= SI_CONTEXT_VGT_FLUSH; + radeon_add_to_buffer_list(ctx, ctx->gfx_cs, ctx->border_color_buffer, RADEON_USAGE_READ, RADEON_PRIO_BORDER_COLORS); if (ctx->shadowed_regs) { diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c index cb21f21fc8b..9a1c275c894 100644 --- a/src/gallium/drivers/radeonsi/si_state_draw.c +++ b/src/gallium/drivers/radeonsi/si_state_draw.c @@ -2104,7 +2104,8 @@ static void si_draw_vbo(struct pipe_context *ctx, /* Insert a VGT_FLUSH when enabling fast launch changes to prevent hangs. * See issues #2418, #2426, #2434 */ - if (ngg_culling & SI_NGG_CULL_GS_FAST_LAUNCH_ALL) + if (ngg_culling & SI_NGG_CULL_GS_FAST_LAUNCH_ALL && + !(sctx->ngg_culling & SI_NGG_CULL_GS_FAST_LAUNCH_ALL)) sctx->flags |= SI_CONTEXT_VGT_FLUSH; sctx->ngg_culling = ngg_culling; sctx->do_update_shaders = true; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
