From 21d6d44e96b1e45b0ae49ee4216cd23094ce4db2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Fri, 31 May 2024 17:33:32 -0400 Subject: [PATCH] radeonsi: remove cp_to_L2 and L2_to_cp, inline the values Acked-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/drivers/radeonsi/si_pipe.c | 7 ------- src/gallium/drivers/radeonsi/si_pipe.h | 12 ------------ src/gallium/drivers/radeonsi/si_query.c | 9 ++++++--- 3 files changed, 6 insertions(+), 22 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c index 9b4be865dcf..aba1b71a7bd 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.c +++ b/src/gallium/drivers/radeonsi/si_pipe.c @@ -1424,13 +1424,6 @@ static struct pipe_screen *radeonsi_screen_create_impl(struct radeon_winsys *ws, (void)simple_mtx_init(&sscreen->shader_parts_mutex, mtx_plain); sscreen->use_monolithic_shaders = (sscreen->debug_flags & DBG(MONOLITHIC_SHADERS)) != 0; - sscreen->barrier_flags.cp_to_L2 = SI_CONTEXT_INV_SCACHE | SI_CONTEXT_INV_VCACHE; - - if (sscreen->info.gfx_level <= GFX8) { - sscreen->barrier_flags.cp_to_L2 |= SI_CONTEXT_INV_L2; - sscreen->barrier_flags.L2_to_cp |= SI_CONTEXT_WB_L2; - } - if (debug_get_bool_option("RADEON_DUMP_SHADERS", false)) sscreen->debug_flags |= DBG_ALL_SHADERS; diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index 42e39689973..67641031f5c 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -628,18 +628,6 @@ struct si_screen { */ unsigned compressed_colortex_counter; - struct { - /* Context flags to set so that all writes from earlier jobs - * in the CP are seen by L2 clients. - */ - unsigned cp_to_L2; - - /* Context flags to set so that all writes from earlier jobs - * that end in L2 are seen by CP. - */ - unsigned L2_to_cp; - } barrier_flags; - simple_mtx_t shader_parts_mutex; struct si_shader_part *ps_prologs; struct si_shader_part *ps_epilogs; diff --git a/src/gallium/drivers/radeonsi/si_query.c b/src/gallium/drivers/radeonsi/si_query.c index 68129072c3b..3392f1a1f58 100644 --- a/src/gallium/drivers/radeonsi/si_query.c +++ b/src/gallium/drivers/radeonsi/si_query.c @@ -1617,7 +1617,8 @@ static void si_query_hw_get_result_resource(struct si_context *sctx, struct si_q break; } - sctx->flags |= sctx->screen->barrier_flags.cp_to_L2; + sctx->flags |= SI_CONTEXT_INV_SCACHE | SI_CONTEXT_INV_VCACHE | + (sctx->gfx_level <= GFX8 ? SI_CONTEXT_INV_L2 : 0); si_mark_atom_dirty(sctx, &sctx->atoms.s.cache_flush); for (qbuf = &query->buffer; qbuf; qbuf = qbuf_prev) { @@ -1713,8 +1714,10 @@ static void si_render_condition(struct pipe_context *ctx, struct pipe_query *que /* Settings this in the render cond atom is too late, * so set it here. */ - sctx->flags |= sctx->screen->barrier_flags.L2_to_cp; - si_mark_atom_dirty(sctx, &sctx->atoms.s.cache_flush); + if (sctx->gfx_level <= GFX8) { + sctx->flags |= SI_CONTEXT_WB_L2; + si_mark_atom_dirty(sctx, &sctx->atoms.s.cache_flush); + } sctx->render_cond_enabled = old_render_cond_enabled; }