From ffc3d430db200232171ee882fcc64015f5e08564 Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Tue, 6 May 2025 17:46:02 +0800 Subject: [PATCH] radeonsi: simplify si_update_rasterized_prim while handle mesh shader MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Otherwise mesh shader ends in the "else" section. Reviewed-by: Marek Olšák Part-of: --- .../drivers/radeonsi/si_state_shaders.cpp | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.cpp b/src/gallium/drivers/radeonsi/si_state_shaders.cpp index 2b42bae7d38..f6824894d09 100644 --- a/src/gallium/drivers/radeonsi/si_state_shaders.cpp +++ b/src/gallium/drivers/radeonsi/si_state_shaders.cpp @@ -3753,20 +3753,14 @@ static void si_update_clip_regs(struct si_context *sctx, struct si_shader_select static void si_update_rasterized_prim(struct si_context *sctx) { - struct si_shader *hw_vs = si_get_vs(sctx)->current; + struct si_shader_ctx_state *hw_vs = si_get_vs(sctx); - if (sctx->shader.gs.cso) { - /* Only possibilities: POINTS, LINE_STRIP, TRIANGLES */ - si_set_rasterized_prim(sctx, sctx->shader.gs.cso->rast_prim, hw_vs, sctx->ngg); - } else if (sctx->shader.tes.cso) { - /* Only possibilities: POINTS, LINE_STRIP, TRIANGLES */ - si_set_rasterized_prim(sctx, sctx->shader.tes.cso->rast_prim, hw_vs, sctx->ngg); - } else { - /* The rasterized prim is determined by draw calls. */ - } + /* Vertex shader rasterized prim is determined by draw calls. */ + if (hw_vs->cso && hw_vs->cso->stage != MESA_SHADER_VERTEX) + si_set_rasterized_prim(sctx, hw_vs->cso->rast_prim, hw_vs->current, sctx->ngg); /* This must be done unconditionally because it also depends on si_shader fields. */ - si_update_ngg_sgpr_state_out_prim(sctx, hw_vs, sctx->ngg); + si_update_ngg_sgpr_state_out_prim(sctx, hw_vs->current, sctx->ngg); } void si_update_common_shader_state(struct si_context *sctx, struct si_shader_selector *sel,