diff --git a/src/gallium/drivers/radeonsi/si_nir_lower_vs_inputs.c b/src/gallium/drivers/radeonsi/si_nir_lower_vs_inputs.c index 6bd3e1e6264..f9468c2c624 100644 --- a/src/gallium/drivers/radeonsi/si_nir_lower_vs_inputs.c +++ b/src/gallium/drivers/radeonsi/si_nir_lower_vs_inputs.c @@ -89,7 +89,7 @@ get_vertex_index_for_all_inputs(nir_shader *nir, struct lower_vs_inputs_state *s si_nir_load_internal_binding(sel->screen, b, s->args, SI_VS_CONST_INSTANCE_DIVISORS, 4); } - for (int i = 0; i < sel->info.num_inputs; i++) + for (int i = 0; i < sel->info.num_vs_inputs; i++) s->vertex_index[i] = get_vertex_index(b, i, s); } @@ -589,7 +589,7 @@ si_nir_lower_vs_inputs(nir_shader *nir, struct si_shader *shader, struct si_shad const struct si_shader_selector *sel = shader->selector; /* no inputs to lower */ - if (!sel->info.num_inputs) + if (!sel->info.num_vs_inputs && !nir->info.vs.blit_sgprs_amd) return false; struct lower_vs_inputs_state state = { diff --git a/src/gallium/drivers/radeonsi/si_shader_info.c b/src/gallium/drivers/radeonsi/si_shader_info.c index e40779468fd..6dbf0f98fd6 100644 --- a/src/gallium/drivers/radeonsi/si_shader_info.c +++ b/src/gallium/drivers/radeonsi/si_shader_info.c @@ -667,8 +667,8 @@ void si_nir_gather_info(struct si_screen *sscreen, struct nir_shader *nir, info->has_divergent_loop = nir_has_divergent_loop(nir); if (nir->info.stage == MESA_SHADER_VERTEX) { - info->num_vs_inputs = - nir->info.stage == MESA_SHADER_VERTEX && !nir->info.vs.blit_sgprs_amd ? info->num_inputs : 0; + info->num_vs_inputs = nir->info.stage == MESA_SHADER_VERTEX && !nir->info.vs.blit_sgprs_amd ? + nir->num_inputs : 0; unsigned num_vbos_in_sgprs = si_num_vbos_in_user_sgprs_inline(sscreen->info.gfx_level); info->num_vbos_in_user_sgprs = MIN2(info->num_vs_inputs, num_vbos_in_sgprs); } diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.cpp b/src/gallium/drivers/radeonsi/si_state_shaders.cpp index 735b8c49f58..2d33138e66d 100644 --- a/src/gallium/drivers/radeonsi/si_state_shaders.cpp +++ b/src/gallium/drivers/radeonsi/si_state_shaders.cpp @@ -2322,7 +2322,7 @@ void si_vs_key_update_inputs(struct si_context *sctx) key->ge.mono.instance_divisor_is_fetched = elts->instance_divisor_is_fetched; key->ge.opt.prefer_mono = elts->instance_divisor_is_fetched; - unsigned count_mask = (1 << vs->info.num_inputs) - 1; + unsigned count_mask = (1 << vs->info.num_vs_inputs) - 1; unsigned fix = elts->fix_fetch_always & count_mask; unsigned opencode = elts->fix_fetch_opencode & count_mask;