radeonsi: don't do VGT_FLUSH before fast launch on gfx10.3

I don't see any hangs here. Blender and the Factorio trace work fine.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7542>
This commit is contained in:
Marek Olšák 2020-11-10 23:05:30 -05:00 committed by Marge Bot
parent e2b784e74b
commit 4753235406
2 changed files with 3 additions and 2 deletions

View file

@ -426,7 +426,7 @@ void si_begin_new_gfx_cs(struct si_context *ctx, bool first_cs)
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)
if (ctx->chip_class == GFX10 && 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,

View file

@ -2129,7 +2129,8 @@ static void si_draw_vbo(struct pipe_context *ctx,
* This is the setting that is used by the draw.
*/
uint8_t ngg_culling = si_get_vs(sctx)->current->key.opt.ngg_culling;
if (!(old_ngg_culling & SI_NGG_CULL_GS_FAST_LAUNCH_ALL) &&
if (sctx->chip_class == GFX10 &&
!(old_ngg_culling & SI_NGG_CULL_GS_FAST_LAUNCH_ALL) &&
ngg_culling & SI_NGG_CULL_GS_FAST_LAUNCH_ALL)
sctx->flags |= SI_CONTEXT_VGT_FLUSH;