Reviewed-by: Bas Nieuwenhuizen <[email protected]> for the series.
On Tue, Jan 9, 2018 at 6:09 PM, Samuel Pitoiset <[email protected]> wrote: > It makes more sense to rely on nir_intrinsic_load_push_constant > instead of the pipeline layout. > > Signed-off-by: Samuel Pitoiset <[email protected]> > --- > src/amd/common/ac_nir_to_llvm.c | 6 +++--- > src/amd/common/ac_shader_info.c | 10 +++++----- > src/amd/common/ac_shader_info.h | 2 +- > 3 files changed, 9 insertions(+), 9 deletions(-) > > diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c > index 70876cfc69..54edeff983 100644 > --- a/src/amd/common/ac_nir_to_llvm.c > +++ b/src/amd/common/ac_nir_to_llvm.c > @@ -597,7 +597,7 @@ static void allocate_user_sgprs(struct > nir_to_llvm_context *ctx, > break; > } > > - if (ctx->shader_info->info.needs_push_constants) > + if (ctx->shader_info->info.loads_push_constants) > user_sgpr_info->sgpr_count += 2; > > uint32_t remaining_sgprs = 16 - user_sgpr_info->sgpr_count; > @@ -638,7 +638,7 @@ declare_global_input_sgprs(struct nir_to_llvm_context > *ctx, > add_array_arg(args, const_array(type, 32), desc_sets); > } > > - if (ctx->shader_info->info.needs_push_constants) { > + if (ctx->shader_info->info.loads_push_constants) { > /* 1 for push constants and dynamic descriptors */ > add_array_arg(args, type, &ctx->push_constants); > } > @@ -729,7 +729,7 @@ set_global_input_locs(struct nir_to_llvm_context *ctx, > gl_shader_stage stage, > ctx->shader_info->need_indirect_descriptor_sets = true; > } > > - if (ctx->shader_info->info.needs_push_constants) { > + if (ctx->shader_info->info.loads_push_constants) { > set_loc_shader(ctx, AC_UD_PUSH_CONSTANTS, user_sgpr_idx, 2); > } > } > diff --git a/src/amd/common/ac_shader_info.c b/src/amd/common/ac_shader_info.c > index 27896a26bb..443980c7d1 100644 > --- a/src/amd/common/ac_shader_info.c > +++ b/src/amd/common/ac_shader_info.c > @@ -76,6 +76,9 @@ gather_intrinsic_info(nir_intrinsic_instr *instr, struct > ac_shader_info *info) > case nir_intrinsic_load_primitive_id: > info->uses_prim_id = true; > break; > + case nir_intrinsic_load_push_constant: > + info->loads_push_constants = true; > + break; > case nir_intrinsic_vulkan_resource_index: > info->desc_set_used_mask |= (1 << > nir_intrinsic_desc_set(instr)); > break; > @@ -154,11 +157,8 @@ ac_nir_shader_info_pass(struct nir_shader *nir, > { > struct nir_function *func = (struct nir_function > *)exec_list_get_head(&nir->functions); > > - info->needs_push_constants = false; > - if ((options->layout->push_constant_size && > - options->layout->push_constant_stages & (1 << nir->info.stage)) > || > - options->layout->dynamic_offset_count) > - info->needs_push_constants = true; > + if (options->layout->dynamic_offset_count) > + info->loads_push_constants = true; > > nir_foreach_variable(variable, &nir->inputs) > gather_info_input_decl(nir, options, variable, info); > diff --git a/src/amd/common/ac_shader_info.h b/src/amd/common/ac_shader_info.h > index 437859f891..9c9a8473a4 100644 > --- a/src/amd/common/ac_shader_info.h > +++ b/src/amd/common/ac_shader_info.h > @@ -28,7 +28,7 @@ struct nir_shader; > struct ac_nir_compiler_options; > > struct ac_shader_info { > - bool needs_push_constants; > + bool loads_push_constants; > uint32_t desc_set_used_mask; > bool needs_multiview_view_index; > bool uses_invocation_id; > -- > 2.15.1 > > _______________________________________________ > mesa-dev mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
