aco,radv,radeonsi: pass spi ps input ena and addr

radeonsi may pass different ena and addr when part mode shader.

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24973>
This commit is contained in:
Qiang Yu 2023-08-19 11:20:00 +08:00 committed by Marge Bot
parent c9c18d3da5
commit f97a701d89
4 changed files with 8 additions and 5 deletions

View file

@ -625,8 +625,8 @@ init_context(isel_context* ctx, nir_shader* shader)
}
}
ctx->program->config->spi_ps_input_ena = ctx->program->info.ps.spi_ps_input;
ctx->program->config->spi_ps_input_addr = ctx->program->info.ps.spi_ps_input;
ctx->program->config->spi_ps_input_ena = ctx->program->info.ps.spi_ps_input_ena;
ctx->program->config->spi_ps_input_addr = ctx->program->info.ps.spi_ps_input_addr;
ctx->cf_info.nir_to_aco = std::move(nir_to_aco);

View file

@ -171,7 +171,8 @@ struct aco_shader_info {
} tcs;
struct {
uint32_t num_interp;
unsigned spi_ps_input;
unsigned spi_ps_input_ena;
unsigned spi_ps_input_addr;
/* Vulkan only */
struct ac_arg epilog_pc;

View file

@ -58,9 +58,10 @@ radv_aco_convert_shader_info(struct aco_shader_info *aco_info, const struct radv
ASSIGN_FIELD(tcs.num_linked_patch_outputs);
ASSIGN_FIELD(tcs.tcs_vertices_out);
ASSIGN_FIELD(ps.num_interp);
ASSIGN_FIELD(ps.spi_ps_input);
ASSIGN_FIELD(cs.subgroup_size);
ASSIGN_FIELD(cs.uses_full_subgroups);
aco_info->ps.spi_ps_input_ena = radv->ps.spi_ps_input;
aco_info->ps.spi_ps_input_addr = radv->ps.spi_ps_input;
aco_info->gfx9_gs_ring_lds_size = radv->gs_ring_info.lds_size;
aco_info->is_trap_handler_shader = radv->type == RADV_SHADER_TYPE_TRAP_HANDLER;
aco_info->image_2d_view_of_3d = radv_key->image_2d_view_of_3d;

View file

@ -104,7 +104,8 @@ si_fill_aco_shader_info(struct si_shader *shader, struct aco_shader_info *info,
break;
case MESA_SHADER_FRAGMENT:
info->ps.num_interp = si_get_ps_num_interp(shader);
info->ps.spi_ps_input = shader->config.spi_ps_input_ena;
info->ps.spi_ps_input_ena = shader->config.spi_ps_input_ena;
info->ps.spi_ps_input_addr = shader->config.spi_ps_input_addr;
break;
default:
break;