From b337e60a6f620596acf2d46b90548e995a3189f5 Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Thu, 17 Apr 2025 10:07:23 +0800 Subject: [PATCH] radeonsi: check render feedback only for fragment shader MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We set need_check_render_feedback for fragment shader only: 69ad0fc61e5a ("radeonsi: only set need_check_render_feedback if binding textures for PS") This helps adding mesh shader to not involve other geometry stages so we can do it in either vertex or mesh pipeline. Reviewed-by: Marek Olšák Part-of: --- src/gallium/drivers/radeonsi/si_blit.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c index b00b1c83707..4bdae81f2b9 100644 --- a/src/gallium/drivers/radeonsi/si_blit.c +++ b/src/gallium/drivers/radeonsi/si_blit.c @@ -757,14 +757,12 @@ static void si_check_render_feedback(struct si_context *sctx) if (!si_any_colorbuffer_written(sctx)) return; - for (int i = 0; i < SI_NUM_GRAPHICS_SHADERS; ++i) { - if (!sctx->shaders[i].cso) - continue; + if (sctx->shaders[PIPE_SHADER_FRAGMENT].cso) { + struct si_shader_info *info = &sctx->shaders[PIPE_SHADER_FRAGMENT].cso->info; - struct si_shader_info *info = &sctx->shaders[i].cso->info; - si_check_render_feedback_images(sctx, &sctx->images[i], + si_check_render_feedback_images(sctx, &sctx->images[PIPE_SHADER_FRAGMENT], BITFIELD_MASK(info->base.num_images)); - si_check_render_feedback_textures(sctx, &sctx->samplers[i], + si_check_render_feedback_textures(sctx, &sctx->samplers[PIPE_SHADER_FRAGMENT], info->base.textures_used); }