Lines Matching refs:info
80 count_vs_user_sgprs(const struct radv_shader_info *info)
84 if (info->vs.vb_desc_usage_mask)
86 if (info->vs.needs_draw_id)
88 if (info->vs.needs_base_instance)
95 count_ms_user_sgprs(const struct radv_shader_info *info)
99 if (info->vs.needs_draw_id)
101 if (info->cs.uses_task_rings)
108 count_ngg_sgprs(const struct radv_shader_info *info, bool has_ngg_query)
114 if (info->has_ngg_culling)
121 allocate_inline_push_consts(const struct radv_shader_info *info,
126 if (!info->inline_push_constant_mask)
129 uint64_t mask = info->inline_push_constant_mask;
136 info->can_inline_all_push_constants && !info->loads_dynamic_offsets) {
152 allocate_user_sgprs(enum amd_gfx_level gfx_level, const struct radv_shader_info *info,
168 if (info->vs.has_prolog)
174 if (info->cs.uses_sbt)
176 if (info->cs.uses_grid_size)
178 if (info->cs.uses_ray_launch_size)
180 if (info->vs.needs_draw_id)
182 if (info->cs.uses_task_rings)
187 if (info->ps.has_epilog)
192 user_sgpr_count += count_vs_user_sgprs(info);
197 user_sgpr_count += count_vs_user_sgprs(info);
204 if (info->is_ngg)
205 user_sgpr_count += count_ngg_sgprs(info, has_ngg_query);
208 user_sgpr_count += count_vs_user_sgprs(info);
210 user_sgpr_count += count_ms_user_sgprs(info);
221 if (info->force_vrs_per_vertex)
224 if (info->loads_push_constants)
227 if (info->so.num_outputs)
233 uint32_t num_desc_set = util_bitcount(info->desc_set_used_mask);
242 allocate_inline_push_consts(info, user_sgpr_info);
246 declare_global_input_sgprs(const struct radv_shader_info *info,
252 uint32_t mask = info->desc_set_used_mask;
263 if (info->loads_push_constants && !user_sgpr_info->inlined_all_push_consts) {
273 if (info->so.num_outputs) {
279 declare_vs_specific_input_sgprs(const struct radv_shader_info *info, struct radv_shader_args *args,
283 if (info->vs.has_prolog)
288 if (info->vs.vb_desc_usage_mask) {
292 if (info->vs.needs_draw_id) {
295 if (info->vs.needs_base_instance) {
302 declare_vs_input_vgprs(enum amd_gfx_level gfx_level, const struct radv_shader_info *info,
307 if (info->vs.as_ls) {
324 if (info->is_ngg) {
341 if (info->vs.dynamic_inputs) {
342 assert(info->vs.use_per_attribute_vb_descs);
343 unsigned num_attributes = util_last_bit(info->vs.vb_desc_usage_mask);
354 declare_streamout_sgprs(const struct radv_shader_info *info, struct radv_shader_args *args,
360 if (info->so.num_outputs) {
371 if (!info->so.strides[i])
388 declare_ms_input_sgprs(const struct radv_shader_info *info, struct radv_shader_args *args)
392 if (info->vs.needs_draw_id) {
395 if (info->cs.uses_task_rings) {
410 declare_ps_input_vgprs(const struct radv_shader_info *info, struct radv_shader_args *args)
412 unsigned spi_ps_input = info->ps.spi_ps_input;
454 if (info->ps.has_epilog) {
462 declare_ngg_sgprs(const struct radv_shader_info *info, struct radv_shader_args *args,
468 if (info->has_ngg_culling) {
537 const struct radv_shader_info *info, gl_shader_stage stage,
542 bool needs_view_index = info->uses_view_index;
545 if (gfx_level >= GFX10 && info->is_ngg && stage != MESA_SHADER_GEOMETRY) {
557 allocate_user_sgprs(gfx_level, info, args, stage, has_previous_stage, previous_stage,
574 declare_global_input_sgprs(info, &user_sgpr_info, args);
576 if (info->cs.uses_sbt) {
580 if (info->cs.uses_grid_size) {
587 if (info->cs.uses_ray_launch_size) {
591 if (info->vs.needs_draw_id) {
595 if (info->cs.uses_task_rings) {
602 if (info->cs.uses_block_id[i]) {
607 if (info->cs.uses_local_invocation_idx) {
622 assert(!info->is_ngg);
624 declare_vs_specific_input_sgprs(info, args, stage, has_previous_stage, previous_stage);
626 declare_global_input_sgprs(info, &user_sgpr_info, args);
632 if (info->force_vrs_per_vertex) {
636 if (info->vs.as_es) {
638 } else if (info->vs.as_ls) {
641 declare_streamout_sgprs(info, args, stage);
648 declare_vs_input_vgprs(gfx_level, info, args);
666 declare_vs_specific_input_sgprs(info, args, stage, has_previous_stage, previous_stage);
668 declare_global_input_sgprs(info, &user_sgpr_info, args);
677 declare_vs_input_vgprs(gfx_level, info, args);
679 declare_global_input_sgprs(info, &user_sgpr_info, args);
696 assert(!info->is_ngg);
698 declare_global_input_sgprs(info, &user_sgpr_info, args);
703 if (info->tes.as_es) {
708 declare_streamout_sgprs(info, args, stage);
719 if (info->is_ngg) {
736 declare_vs_specific_input_sgprs(info, args, stage, has_previous_stage, previous_stage);
738 declare_ms_input_sgprs(info, args);
741 declare_global_input_sgprs(info, &user_sgpr_info, args);
747 if (info->force_vrs_per_vertex) {
751 if (info->is_ngg) {
752 declare_ngg_sgprs(info, args, has_ngg_query);
762 declare_vs_input_vgprs(gfx_level, info, args);
769 declare_global_input_sgprs(info, &user_sgpr_info, args);
775 if (info->force_vrs_per_vertex) {
795 declare_global_input_sgprs(info, &user_sgpr_info, args);
797 if (info->ps.has_epilog) {
806 declare_ps_input_vgprs(info, args);