From 845f333111b24fbe7c2e308fb8eee12bd23e6a64 Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Mon, 12 May 2025 13:37:19 +0800 Subject: [PATCH] radeonsi: select key for mesh shader MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Marek Olšák Part-of: --- src/gallium/drivers/radeonsi/si_state_shaders.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.cpp b/src/gallium/drivers/radeonsi/si_state_shaders.cpp index 4318e646173..237ba273180 100644 --- a/src/gallium/drivers/radeonsi/si_state_shaders.cpp +++ b/src/gallium/drivers/radeonsi/si_state_shaders.cpp @@ -2557,9 +2557,10 @@ static void si_get_vs_key_outputs(struct si_context *sctx, struct si_shader_sele key->ge.opt.kill_layer = vs->info.writes_layer && sctx->framebuffer.state.layers <= 1; key->ge.opt.kill_outputs = ~linked & outputs_written; - key->ge.opt.ngg_culling = sctx->ngg_culling; - key->ge.mono.u.vs_export_prim_id = vs->stage != MESA_SHADER_GEOMETRY && - sctx->shader.ps.cso && sctx->shader.ps.cso->info.uses_primid; + key->ge.opt.ngg_culling = vs->stage != MESA_SHADER_MESH ? sctx->ngg_culling : 0; + key->ge.mono.u.vs_export_prim_id = + vs->stage != MESA_SHADER_GEOMETRY && vs->stage != MESA_SHADER_MESH && + sctx->shader.ps.cso && sctx->shader.ps.cso->info.uses_primid; if (vs->info.enabled_streamout_buffer_mask) { if (sctx->streamout.enabled_mask) { @@ -2960,6 +2961,9 @@ static inline void si_shader_selector_key(struct pipe_context *ctx, struct si_sh si_clear_vs_key_outputs(sctx, sel, key); } break; + case MESA_SHADER_MESH: + si_get_vs_key_outputs(sctx, sel, key); + break; case MESA_SHADER_FRAGMENT: break; default: