diff --git a/src/amd/compiler/aco_instruction_selection_setup.cpp b/src/amd/compiler/aco_instruction_selection_setup.cpp index c2bf55e5960..d593dd45474 100644 --- a/src/amd/compiler/aco_instruction_selection_setup.cpp +++ b/src/amd/compiler/aco_instruction_selection_setup.cpp @@ -247,10 +247,10 @@ get_reg_class(isel_context* ctx, RegType type, unsigned components, unsigned bit } void -setup_vs_output_info(isel_context* ctx, nir_shader* nir, bool export_prim_id, - bool export_clip_dists, const radv_vs_output_info* outinfo) +setup_vs_output_info(isel_context* ctx, nir_shader* nir, + const radv_vs_output_info* outinfo) { - ctx->export_clip_dists = export_clip_dists; + ctx->export_clip_dists = outinfo->export_clip_dists; ctx->num_clip_distances = util_bitcount(outinfo->clip_dist_mask); ctx->num_cull_distances = util_bitcount(outinfo->cull_dist_mask); @@ -269,8 +269,7 @@ void setup_vs_variables(isel_context* ctx, nir_shader* nir) { if (ctx->stage == vertex_vs || ctx->stage == vertex_ngg) { - const radv_vs_output_info* outinfo = &ctx->program->info->vs.outinfo; - setup_vs_output_info(ctx, nir, outinfo->export_prim_id, outinfo->export_clip_dists, outinfo); + setup_vs_output_info(ctx, nir, &ctx->program->info->vs.outinfo); /* TODO: NGG streamout */ if (ctx->stage.hw == HWStage::NGG) @@ -292,8 +291,7 @@ setup_gs_variables(isel_context* ctx, nir_shader* nir) ctx->program->config->lds_size = ctx->program->info->gs_ring_info.lds_size; /* Already in units of the alloc granularity */ } else if (ctx->stage == vertex_geometry_ngg || ctx->stage == tess_eval_geometry_ngg) { - const radv_vs_output_info* outinfo = &ctx->program->info->vs.outinfo; - setup_vs_output_info(ctx, nir, false, outinfo->export_clip_dists, outinfo); + setup_vs_output_info(ctx, nir, &ctx->program->info->vs.outinfo); ctx->program->config->lds_size = DIV_ROUND_UP(nir->info.shared_size, ctx->program->dev.lds_encoding_granule); @@ -315,8 +313,7 @@ setup_tes_variables(isel_context* ctx, nir_shader* nir) ctx->tcs_num_patches = ctx->args->shader_info->num_tess_patches; if (ctx->stage == tess_eval_vs || ctx->stage == tess_eval_ngg) { - const radv_vs_output_info* outinfo = &ctx->program->info->tes.outinfo; - setup_vs_output_info(ctx, nir, outinfo->export_prim_id, outinfo->export_clip_dists, outinfo); + setup_vs_output_info(ctx, nir, &ctx->program->info->tes.outinfo); /* TODO: NGG streamout */ if (ctx->stage.hw == HWStage::NGG) @@ -900,9 +897,7 @@ setup_isel_context(Program* program, unsigned shader_count, struct nir_shader* c unsigned scratch_size = 0; if (program->stage == gs_copy_vs) { assert(shader_count == 1); - setup_vs_output_info(&ctx, shaders[0], false, - args->shader_info->vs.outinfo.export_clip_dists, - &args->shader_info->vs.outinfo); + setup_vs_output_info(&ctx, shaders[0], &args->shader_info->vs.outinfo); } else { for (unsigned i = 0; i < shader_count; i++) { nir_shader* nir = shaders[i];