summaryrefslogtreecommitdiff
path: root/src/amd/compiler/aco_instruction_selection_setup.cpp
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2022-05-05 11:32:53 +1000
committerMarge Bot <emma+marge@anholt.net>2022-05-11 19:07:11 +0000
commita2701bfdb8ce6fdd2fbce9421480ed3bf8d167ef (patch)
tree44ef20e6e77a4cc171fe11423b1a8b3e5c0391a1 /src/amd/compiler/aco_instruction_selection_setup.cpp
parent29fbc88d6b37ebfa20ae78a6ccfb964b0e0c472c (diff)
downloadmesa-a2701bfdb8ce6fdd2fbce9421480ed3bf8d167ef.tar.gz
aco: move info pointer to a copy.
This is just setup to move this to a different struct later. Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16342>
Diffstat (limited to 'src/amd/compiler/aco_instruction_selection_setup.cpp')
-rw-r--r--src/amd/compiler/aco_instruction_selection_setup.cpp38
1 files changed, 19 insertions, 19 deletions
diff --git a/src/amd/compiler/aco_instruction_selection_setup.cpp b/src/amd/compiler/aco_instruction_selection_setup.cpp
index e4f3572db70..dab56f32989 100644
--- a/src/amd/compiler/aco_instruction_selection_setup.cpp
+++ b/src/amd/compiler/aco_instruction_selection_setup.cpp
@@ -269,11 +269,11 @@ void
setup_vs_variables(isel_context* ctx, nir_shader* nir)
{
if (ctx->stage == vertex_vs || ctx->stage == vertex_ngg) {
- setup_vs_output_info(ctx, nir, &ctx->program->info->vs.outinfo);
+ setup_vs_output_info(ctx, nir, &ctx->program->info.vs.outinfo);
/* TODO: NGG streamout */
if (ctx->stage.hw == HWStage::NGG)
- assert(!ctx->program->info->so.num_outputs);
+ assert(!ctx->program->info.so.num_outputs);
}
if (ctx->stage == vertex_ngg) {
@@ -289,9 +289,9 @@ setup_gs_variables(isel_context* ctx, nir_shader* nir)
{
if (ctx->stage == vertex_geometry_gs || ctx->stage == tess_eval_geometry_gs) {
ctx->program->config->lds_size =
- ctx->program->info->gs_ring_info.lds_size; /* Already in units of the alloc granularity */
+ 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) {
- setup_vs_output_info(ctx, nir, &ctx->program->info->vs.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);
@@ -301,23 +301,23 @@ setup_gs_variables(isel_context* ctx, nir_shader* nir)
void
setup_tcs_info(isel_context* ctx, nir_shader* nir, nir_shader* vs)
{
- ctx->tcs_in_out_eq = ctx->program->info->vs.tcs_in_out_eq;
- ctx->tcs_temp_only_inputs = ctx->program->info->vs.tcs_temp_only_input_mask;
- ctx->tcs_num_patches = ctx->program->info->num_tess_patches;
- ctx->program->config->lds_size = ctx->program->info->tcs.num_lds_blocks;
+ ctx->tcs_in_out_eq = ctx->program->info.vs.tcs_in_out_eq;
+ ctx->tcs_temp_only_inputs = ctx->program->info.vs.tcs_temp_only_input_mask;
+ ctx->tcs_num_patches = ctx->program->info.num_tess_patches;
+ ctx->program->config->lds_size = ctx->program->info.tcs.num_lds_blocks;
}
void
setup_tes_variables(isel_context* ctx, nir_shader* nir)
{
- ctx->tcs_num_patches = ctx->program->info->num_tess_patches;
+ ctx->tcs_num_patches = ctx->program->info.num_tess_patches;
if (ctx->stage == tess_eval_vs || ctx->stage == tess_eval_ngg) {
- setup_vs_output_info(ctx, nir, &ctx->program->info->tes.outinfo);
+ setup_vs_output_info(ctx, nir, &ctx->program->info.tes.outinfo);
/* TODO: NGG streamout */
if (ctx->stage.hw == HWStage::NGG)
- assert(!ctx->program->info->so.num_outputs);
+ assert(!ctx->program->info.so.num_outputs);
}
if (ctx->stage == tess_eval_ngg) {
@@ -331,7 +331,7 @@ setup_tes_variables(isel_context* ctx, nir_shader* nir)
void
setup_ms_variables(isel_context* ctx, nir_shader* nir)
{
- setup_vs_output_info(ctx, nir, &ctx->program->info->ms.outinfo);
+ setup_vs_output_info(ctx, nir, &ctx->program->info.ms.outinfo);
ctx->program->config->lds_size =
DIV_ROUND_UP(nir->info.shared_size, ctx->program->dev.lds_encoding_granule);
@@ -403,9 +403,9 @@ init_context(isel_context* ctx, nir_shader* shader)
ctx->range_ht = _mesa_pointer_hash_table_create(NULL);
ctx->ub_config.min_subgroup_size = 64;
ctx->ub_config.max_subgroup_size = 64;
- if (ctx->shader->info.stage == MESA_SHADER_COMPUTE && ctx->program->info->cs.subgroup_size) {
- ctx->ub_config.min_subgroup_size = ctx->program->info->cs.subgroup_size;
- ctx->ub_config.max_subgroup_size = ctx->program->info->cs.subgroup_size;
+ if (ctx->shader->info.stage == MESA_SHADER_COMPUTE && ctx->program->info.cs.subgroup_size) {
+ ctx->ub_config.min_subgroup_size = ctx->program->info.cs.subgroup_size;
+ ctx->ub_config.max_subgroup_size = ctx->program->info.cs.subgroup_size;
}
ctx->ub_config.max_workgroup_invocations = 2048;
ctx->ub_config.max_workgroup_count[0] = 65535;
@@ -821,8 +821,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;
+ ctx->program->config->spi_ps_input_addr = ctx->program->info.ps.spi_ps_input;
ctx->cf_info.nir_to_aco = std::move(nir_to_aco);
@@ -916,7 +916,7 @@ setup_isel_context(Program* program, unsigned shader_count, struct nir_shader* c
ctx.options = options;
ctx.stage = program->stage;
- program->workgroup_size = program->info->workgroup_size;
+ program->workgroup_size = program->info.workgroup_size;
assert(program->workgroup_size);
/* Mesh shading only works on GFX10.3+. */
@@ -933,7 +933,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], &program->info->vs.outinfo);
+ setup_vs_output_info(&ctx, shaders[0], &program->info.vs.outinfo);
} else {
for (unsigned i = 0; i < shader_count; i++) {
nir_shader* nir = shaders[i];