From 69ad0fc61e5a8efd5ed2f2f127e32b0b863a814f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Wed, 21 Aug 2024 14:07:19 -0400 Subject: [PATCH] radeonsi: only set need_check_render_feedback if binding textures for PS Other shader stages can't realistically read and render to the same pixel of the same texture simultaneously. Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/drivers/radeonsi/si_descriptors.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c b/src/gallium/drivers/radeonsi/si_descriptors.c index 34cfa04c758..acbf90f40c9 100644 --- a/src/gallium/drivers/radeonsi/si_descriptors.c +++ b/src/gallium/drivers/radeonsi/si_descriptors.c @@ -494,7 +494,8 @@ static void si_set_sampler_views(struct si_context *sctx, unsigned shader, } } - if (vi_dcc_enabled(tex, sview->base.u.tex.first_level) && + if (shader == PIPE_SHADER_FRAGMENT && + vi_dcc_enabled(tex, sview->base.u.tex.first_level) && p_atomic_read(&tex->framebuffers_bound)) sctx->need_check_render_feedback = true; } @@ -810,7 +811,8 @@ static void si_set_shader_image(struct si_context *ctx, unsigned shader, unsigne images->display_dcc_store_mask &= ~(1u << slot); } - if (vi_dcc_enabled(tex, level) && p_atomic_read(&tex->framebuffers_bound)) + if (shader == PIPE_SHADER_FRAGMENT && vi_dcc_enabled(tex, level) && + p_atomic_read(&tex->framebuffers_bound)) ctx->need_check_render_feedback = true; } }