Lines Matching refs:args
43 set_loc_shader(struct radv_shader_args *args, int idx, uint8_t *sgpr_idx, in set_loc_shader() argument
47 &args->shader_info->user_sgprs_locs.shader_data[idx]; in set_loc_shader()
54 set_loc_shader_ptr(struct radv_shader_args *args, int idx, uint8_t *sgpr_idx) in set_loc_shader_ptr() argument
58 set_loc_shader(args, idx, sgpr_idx, use_32bit_pointers ? 1 : 2); in set_loc_shader_ptr()
62 set_loc_desc(struct radv_shader_args *args, int idx, uint8_t *sgpr_idx) in set_loc_desc() argument
65 &args->shader_info->user_sgprs_locs; in set_loc_desc()
79 static bool needs_view_index_sgpr(struct radv_shader_args *args, in needs_view_index_sgpr() argument
84 if (args->shader_info->needs_multiview_view_index || in needs_view_index_sgpr()
85 …(!args->options->key.vs_common_out.as_es && !args->options->key.vs_common_out.as_ls && args->optio… in needs_view_index_sgpr()
89 …if (args->shader_info->needs_multiview_view_index || (!args->options->key.vs_common_out.as_es && a… in needs_view_index_sgpr()
93 if (args->shader_info->needs_multiview_view_index) in needs_view_index_sgpr()
97 if (args->shader_info->needs_multiview_view_index || in needs_view_index_sgpr()
98 (args->options->key.vs_common_out.as_ngg && in needs_view_index_sgpr()
99 args->options->key.has_multiview_view_index)) in needs_view_index_sgpr()
109 count_vs_user_sgprs(struct radv_shader_args *args) in count_vs_user_sgprs() argument
113 if (args->shader_info->vs.has_vertex_buffers) in count_vs_user_sgprs()
115 count += args->shader_info->vs.needs_draw_id ? 3 : 2; in count_vs_user_sgprs()
120 static void allocate_inline_push_consts(struct radv_shader_args *args, in allocate_inline_push_consts() argument
126 if (args->shader_info->min_push_constant_used == UINT8_MAX) in allocate_inline_push_consts()
130 if (args->shader_info->has_indirect_push_constants) in allocate_inline_push_consts()
134 if (!args->shader_info->has_only_32bit_push_constants) in allocate_inline_push_consts()
138 (args->shader_info->max_push_constant_used - in allocate_inline_push_consts()
139 args->shader_info->min_push_constant_used) / 4; in allocate_inline_push_consts()
143 args->shader_info->num_inline_push_consts = num_push_consts; in allocate_inline_push_consts()
145 args->shader_info->num_inline_push_consts = remaining_sgprs; in allocate_inline_push_consts()
149 if (args->shader_info->num_inline_push_consts > AC_MAX_INLINE_PUSH_CONSTS) in allocate_inline_push_consts()
150 args->shader_info->num_inline_push_consts = AC_MAX_INLINE_PUSH_CONSTS; in allocate_inline_push_consts()
152 if (args->shader_info->num_inline_push_consts == num_push_consts && in allocate_inline_push_consts()
153 !args->shader_info->loads_dynamic_offsets) { in allocate_inline_push_consts()
157 args->shader_info->loads_push_constants = false; in allocate_inline_push_consts()
160 args->shader_info->base_inline_push_consts = in allocate_inline_push_consts()
161 args->shader_info->min_push_constant_used / 4; in allocate_inline_push_consts()
164 static void allocate_user_sgprs(struct radv_shader_args *args, in allocate_user_sgprs() argument
180 if (args->shader_info->cs.uses_grid_size) in allocate_user_sgprs()
184 user_sgpr_count += args->shader_info->ps.needs_sample_positions; in allocate_user_sgprs()
187 if (!args->is_gs_copy_shader) in allocate_user_sgprs()
188 user_sgpr_count += count_vs_user_sgprs(args); in allocate_user_sgprs()
193 user_sgpr_count += count_vs_user_sgprs(args); in allocate_user_sgprs()
201 user_sgpr_count += count_vs_user_sgprs(args); in allocate_user_sgprs()
212 if (args->shader_info->loads_push_constants) in allocate_user_sgprs()
215 if (args->shader_info->so.num_outputs) in allocate_user_sgprs()
218 …uint32_t available_sgprs = args->options->chip_class >= GFX9 && stage != MESA_SHADER_COMPUTE ? 32 … in allocate_user_sgprs()
221 util_bitcount(args->shader_info->desc_set_used_mask); in allocate_user_sgprs()
230 allocate_inline_push_consts(args, user_sgpr_info); in allocate_user_sgprs()
234 declare_global_input_sgprs(struct radv_shader_args *args, in declare_global_input_sgprs() argument
239 uint32_t mask = args->shader_info->desc_set_used_mask; in declare_global_input_sgprs()
244 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_CONST_PTR, in declare_global_input_sgprs()
245 &args->descriptor_sets[i]); in declare_global_input_sgprs()
248 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_CONST_PTR_PTR, in declare_global_input_sgprs()
249 &args->descriptor_sets[0]); in declare_global_input_sgprs()
252 if (args->shader_info->loads_push_constants) { in declare_global_input_sgprs()
254 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_CONST_PTR, in declare_global_input_sgprs()
255 &args->ac.push_constants); in declare_global_input_sgprs()
258 for (unsigned i = 0; i < args->shader_info->num_inline_push_consts; i++) { in declare_global_input_sgprs()
259 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in declare_global_input_sgprs()
260 &args->ac.inline_push_consts[i]); in declare_global_input_sgprs()
262 args->ac.num_inline_push_consts = args->shader_info->num_inline_push_consts; in declare_global_input_sgprs()
263 args->ac.base_inline_push_consts = args->shader_info->base_inline_push_consts; in declare_global_input_sgprs()
265 if (args->shader_info->so.num_outputs) { in declare_global_input_sgprs()
266 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_CONST_DESC_PTR, in declare_global_input_sgprs()
267 &args->streamout_buffers); in declare_global_input_sgprs()
272 declare_vs_specific_input_sgprs(struct radv_shader_args *args, in declare_vs_specific_input_sgprs() argument
277 if (!args->is_gs_copy_shader && in declare_vs_specific_input_sgprs()
280 if (args->shader_info->vs.has_vertex_buffers) { in declare_vs_specific_input_sgprs()
281 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_CONST_DESC_PTR, in declare_vs_specific_input_sgprs()
282 &args->vertex_buffers); in declare_vs_specific_input_sgprs()
284 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.base_vertex); in declare_vs_specific_input_sgprs()
285 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.start_instance); in declare_vs_specific_input_sgprs()
286 if (args->shader_info->vs.needs_draw_id) { in declare_vs_specific_input_sgprs()
287 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.draw_id); in declare_vs_specific_input_sgprs()
293 declare_vs_input_vgprs(struct radv_shader_args *args) in declare_vs_input_vgprs() argument
295 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.vertex_id); in declare_vs_input_vgprs()
296 if (!args->is_gs_copy_shader) { in declare_vs_input_vgprs()
297 if (args->options->key.vs_common_out.as_ls) { in declare_vs_input_vgprs()
298 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->rel_auto_id); in declare_vs_input_vgprs()
299 if (args->options->chip_class >= GFX10) { in declare_vs_input_vgprs()
300 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* user vgpr */ in declare_vs_input_vgprs()
301 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.instance_id); in declare_vs_input_vgprs()
303 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.instance_id); in declare_vs_input_vgprs()
304 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* unused */ in declare_vs_input_vgprs()
307 if (args->options->chip_class >= GFX10) { in declare_vs_input_vgprs()
308 if (args->options->key.vs_common_out.as_ngg) { in declare_vs_input_vgprs()
309 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* user vgpr */ in declare_vs_input_vgprs()
310 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* user vgpr */ in declare_vs_input_vgprs()
311 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.instance_id); in declare_vs_input_vgprs()
313 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* unused */ in declare_vs_input_vgprs()
314 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->vs_prim_id); in declare_vs_input_vgprs()
315 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.instance_id); in declare_vs_input_vgprs()
318 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.instance_id); in declare_vs_input_vgprs()
319 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->vs_prim_id); in declare_vs_input_vgprs()
320 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* unused */ in declare_vs_input_vgprs()
327 declare_streamout_sgprs(struct radv_shader_args *args, gl_shader_stage stage) in declare_streamout_sgprs() argument
331 if (args->options->use_ngg_streamout) { in declare_streamout_sgprs()
333 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); in declare_streamout_sgprs()
338 if (args->shader_info->so.num_outputs) { in declare_streamout_sgprs()
342 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->streamout_config); in declare_streamout_sgprs()
343 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->streamout_write_idx); in declare_streamout_sgprs()
345 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); in declare_streamout_sgprs()
350 if (!args->shader_info->so.strides[i]) in declare_streamout_sgprs()
353 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->streamout_offset[i]); in declare_streamout_sgprs()
358 declare_tes_input_vgprs(struct radv_shader_args *args) in declare_tes_input_vgprs() argument
360 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->tes_u); in declare_tes_input_vgprs()
361 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->tes_v); in declare_tes_input_vgprs()
362 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->tes_rel_patch_id); in declare_tes_input_vgprs()
363 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.tes_patch_id); in declare_tes_input_vgprs()
367 set_global_input_locs(struct radv_shader_args *args, in set_global_input_locs() argument
371 uint32_t mask = args->shader_info->desc_set_used_mask; in set_global_input_locs()
377 set_loc_desc(args, i, user_sgpr_idx); in set_global_input_locs()
380 set_loc_shader_ptr(args, AC_UD_INDIRECT_DESCRIPTOR_SETS, in set_global_input_locs()
383 args->shader_info->need_indirect_descriptor_sets = true; in set_global_input_locs()
386 if (args->shader_info->loads_push_constants) { in set_global_input_locs()
387 set_loc_shader_ptr(args, AC_UD_PUSH_CONSTANTS, user_sgpr_idx); in set_global_input_locs()
390 if (args->shader_info->num_inline_push_consts) { in set_global_input_locs()
391 set_loc_shader(args, AC_UD_INLINE_PUSH_CONSTANTS, user_sgpr_idx, in set_global_input_locs()
392 args->shader_info->num_inline_push_consts); in set_global_input_locs()
395 if (args->streamout_buffers.used) { in set_global_input_locs()
396 set_loc_shader_ptr(args, AC_UD_STREAMOUT_BUFFERS, in set_global_input_locs()
402 set_vs_specific_input_locs(struct radv_shader_args *args, in set_vs_specific_input_locs() argument
407 if (!args->is_gs_copy_shader && in set_vs_specific_input_locs()
410 if (args->shader_info->vs.has_vertex_buffers) { in set_vs_specific_input_locs()
411 set_loc_shader_ptr(args, AC_UD_VS_VERTEX_BUFFERS, in set_vs_specific_input_locs()
416 if (args->shader_info->vs.needs_draw_id) in set_vs_specific_input_locs()
419 set_loc_shader(args, AC_UD_VS_BASE_VERTEX_START_INSTANCE, in set_vs_specific_input_locs()
431 radv_declare_shader_args(struct radv_shader_args *args, in radv_declare_shader_args() argument
437 bool needs_view_index = needs_view_index_sgpr(args, stage); in radv_declare_shader_args()
439 if (args->options->chip_class >= GFX10) { in radv_declare_shader_args()
440 if (is_pre_gs_stage(stage) && args->options->key.vs_common_out.as_ngg) { in radv_declare_shader_args()
449 args->shader_info->user_sgprs_locs.descriptor_sets[i].sgpr_idx = -1; in radv_declare_shader_args()
451 args->shader_info->user_sgprs_locs.shader_data[i].sgpr_idx = -1; in radv_declare_shader_args()
454 allocate_user_sgprs(args, stage, has_previous_stage, in radv_declare_shader_args()
457 if (args->options->explicit_scratch_args) { in radv_declare_shader_args()
458 ac_add_arg(&args->ac, AC_ARG_SGPR, 2, AC_ARG_CONST_DESC_PTR, in radv_declare_shader_args()
459 &args->ring_offsets); in radv_declare_shader_args()
464 declare_global_input_sgprs(args, &user_sgpr_info); in radv_declare_shader_args()
466 if (args->shader_info->cs.uses_grid_size) { in radv_declare_shader_args()
467 ac_add_arg(&args->ac, AC_ARG_SGPR, 3, AC_ARG_INT, in radv_declare_shader_args()
468 &args->ac.num_work_groups); in radv_declare_shader_args()
472 if (args->shader_info->cs.uses_block_id[i]) { in radv_declare_shader_args()
473 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
474 &args->ac.workgroup_ids[i]); in radv_declare_shader_args()
478 if (args->shader_info->cs.uses_local_invocation_idx) { in radv_declare_shader_args()
479 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
480 &args->ac.tg_size); in radv_declare_shader_args()
483 if (args->options->explicit_scratch_args) { in radv_declare_shader_args()
484 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
485 &args->scratch_offset); in radv_declare_shader_args()
488 ac_add_arg(&args->ac, AC_ARG_VGPR, 3, AC_ARG_INT, in radv_declare_shader_args()
489 &args->ac.local_invocation_ids); in radv_declare_shader_args()
492 declare_global_input_sgprs(args, &user_sgpr_info); in radv_declare_shader_args()
494 declare_vs_specific_input_sgprs(args, stage, has_previous_stage, in radv_declare_shader_args()
498 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
499 &args->ac.view_index); in radv_declare_shader_args()
502 if (args->options->key.vs_common_out.as_es) { in radv_declare_shader_args()
503 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
504 &args->es2gs_offset); in radv_declare_shader_args()
505 } else if (args->options->key.vs_common_out.as_ls) { in radv_declare_shader_args()
508 declare_streamout_sgprs(args, stage); in radv_declare_shader_args()
511 if (args->options->explicit_scratch_args) { in radv_declare_shader_args()
512 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
513 &args->scratch_offset); in radv_declare_shader_args()
516 declare_vs_input_vgprs(args); in radv_declare_shader_args()
521 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->oc_lds); in radv_declare_shader_args()
522 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
523 &args->merged_wave_info); in radv_declare_shader_args()
524 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
525 &args->tess_factor_offset); in radv_declare_shader_args()
527 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->scratch_offset); in radv_declare_shader_args()
528 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); // unknown in radv_declare_shader_args()
529 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); // unknown in radv_declare_shader_args()
531 declare_global_input_sgprs(args, &user_sgpr_info); in radv_declare_shader_args()
533 declare_vs_specific_input_sgprs(args, stage, in radv_declare_shader_args()
538 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
539 &args->ac.view_index); in radv_declare_shader_args()
542 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
543 &args->ac.tcs_patch_id); in radv_declare_shader_args()
544 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
545 &args->ac.tcs_rel_ids); in radv_declare_shader_args()
547 declare_vs_input_vgprs(args); in radv_declare_shader_args()
549 declare_global_input_sgprs(args, &user_sgpr_info); in radv_declare_shader_args()
552 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
553 &args->ac.view_index); in radv_declare_shader_args()
556 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->oc_lds); in radv_declare_shader_args()
557 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
558 &args->tess_factor_offset); in radv_declare_shader_args()
559 if (args->options->explicit_scratch_args) { in radv_declare_shader_args()
560 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
561 &args->scratch_offset); in radv_declare_shader_args()
563 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
564 &args->ac.tcs_patch_id); in radv_declare_shader_args()
565 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
566 &args->ac.tcs_rel_ids); in radv_declare_shader_args()
570 declare_global_input_sgprs(args, &user_sgpr_info); in radv_declare_shader_args()
573 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
574 &args->ac.view_index); in radv_declare_shader_args()
576 if (args->options->key.vs_common_out.as_es) { in radv_declare_shader_args()
577 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->oc_lds); in radv_declare_shader_args()
578 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); in radv_declare_shader_args()
579 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
580 &args->es2gs_offset); in radv_declare_shader_args()
582 declare_streamout_sgprs(args, stage); in radv_declare_shader_args()
583 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->oc_lds); in radv_declare_shader_args()
585 if (args->options->explicit_scratch_args) { in radv_declare_shader_args()
586 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
587 &args->scratch_offset); in radv_declare_shader_args()
589 declare_tes_input_vgprs(args); in radv_declare_shader_args()
594 if (args->options->key.vs_common_out.as_ngg) { in radv_declare_shader_args()
595 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
596 &args->gs_tg_info); in radv_declare_shader_args()
598 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
599 &args->gs2vs_offset); in radv_declare_shader_args()
602 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
603 &args->merged_wave_info); in radv_declare_shader_args()
604 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->oc_lds); in radv_declare_shader_args()
606 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->scratch_offset); in radv_declare_shader_args()
607 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); // unknown in radv_declare_shader_args()
608 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); // unknown in radv_declare_shader_args()
610 declare_global_input_sgprs(args, &user_sgpr_info); in radv_declare_shader_args()
613 declare_vs_specific_input_sgprs(args, stage, in radv_declare_shader_args()
619 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
620 &args->ac.view_index); in radv_declare_shader_args()
623 if (args->options->key.vs_common_out.as_ngg) { in radv_declare_shader_args()
624 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
625 &args->ngg_gs_state); in radv_declare_shader_args()
628 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
629 &args->gs_vtx_offset[0]); in radv_declare_shader_args()
630 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
631 &args->gs_vtx_offset[2]); in radv_declare_shader_args()
632 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
633 &args->ac.gs_prim_id); in radv_declare_shader_args()
634 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
635 &args->ac.gs_invocation_id); in radv_declare_shader_args()
636 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
637 &args->gs_vtx_offset[4]); in radv_declare_shader_args()
640 declare_vs_input_vgprs(args); in radv_declare_shader_args()
642 declare_tes_input_vgprs(args); in radv_declare_shader_args()
645 declare_global_input_sgprs(args, &user_sgpr_info); in radv_declare_shader_args()
648 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
649 &args->ac.view_index); in radv_declare_shader_args()
652 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->gs2vs_offset); in radv_declare_shader_args()
653 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->gs_wave_id); in radv_declare_shader_args()
654 if (args->options->explicit_scratch_args) { in radv_declare_shader_args()
655 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
656 &args->scratch_offset); in radv_declare_shader_args()
658 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
659 &args->gs_vtx_offset[0]); in radv_declare_shader_args()
660 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
661 &args->gs_vtx_offset[1]); in radv_declare_shader_args()
662 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
663 &args->ac.gs_prim_id); in radv_declare_shader_args()
664 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
665 &args->gs_vtx_offset[2]); in radv_declare_shader_args()
666 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
667 &args->gs_vtx_offset[3]); in radv_declare_shader_args()
668 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
669 &args->gs_vtx_offset[4]); in radv_declare_shader_args()
670 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
671 &args->gs_vtx_offset[5]); in radv_declare_shader_args()
672 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
673 &args->ac.gs_invocation_id); in radv_declare_shader_args()
677 declare_global_input_sgprs(args, &user_sgpr_info); in radv_declare_shader_args()
679 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.prim_mask); in radv_declare_shader_args()
680 if (args->options->explicit_scratch_args) { in radv_declare_shader_args()
681 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, in radv_declare_shader_args()
682 &args->scratch_offset); in radv_declare_shader_args()
684 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_INT, &args->ac.persp_sample); in radv_declare_shader_args()
685 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_INT, &args->ac.persp_center); in radv_declare_shader_args()
686 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_INT, &args->ac.persp_centroid); in radv_declare_shader_args()
687 ac_add_arg(&args->ac, AC_ARG_VGPR, 3, AC_ARG_INT, &args->ac.pull_model); in radv_declare_shader_args()
688 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_INT, &args->ac.linear_sample); in radv_declare_shader_args()
689 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_INT, &args->ac.linear_center); in radv_declare_shader_args()
690 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_INT, &args->ac.linear_centroid); in radv_declare_shader_args()
691 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, NULL); /* line stipple tex */ in radv_declare_shader_args()
692 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.frag_pos[0]); in radv_declare_shader_args()
693 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.frag_pos[1]); in radv_declare_shader_args()
694 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.frag_pos[2]); in radv_declare_shader_args()
695 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.frag_pos[3]); in radv_declare_shader_args()
696 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.front_face); in radv_declare_shader_args()
697 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.ancillary); in radv_declare_shader_args()
698 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.sample_coverage); in radv_declare_shader_args()
699 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* fixed pt */ in radv_declare_shader_args()
705 args->shader_info->num_input_vgprs = 0; in radv_declare_shader_args()
706 args->shader_info->num_input_sgprs = 2; in radv_declare_shader_args()
707 args->shader_info->num_input_sgprs += args->ac.num_sgprs_used; in radv_declare_shader_args()
708 args->shader_info->num_input_vgprs = args->ac.num_vgprs_used; in radv_declare_shader_args()
712 set_loc_shader_ptr(args, AC_UD_SCRATCH_RING_OFFSETS, in radv_declare_shader_args()
720 set_global_input_locs(args, &user_sgpr_info, &user_sgpr_idx); in radv_declare_shader_args()
724 if (args->shader_info->cs.uses_grid_size) { in radv_declare_shader_args()
725 set_loc_shader(args, AC_UD_CS_GRID_SIZE, in radv_declare_shader_args()
730 set_vs_specific_input_locs(args, stage, has_previous_stage, in radv_declare_shader_args()
732 if (args->ac.view_index.used) in radv_declare_shader_args()
733 set_loc_shader(args, AC_UD_VIEW_INDEX, &user_sgpr_idx, 1); in radv_declare_shader_args()
736 set_vs_specific_input_locs(args, stage, has_previous_stage, in radv_declare_shader_args()
738 if (args->ac.view_index.used) in radv_declare_shader_args()
739 set_loc_shader(args, AC_UD_VIEW_INDEX, &user_sgpr_idx, 1); in radv_declare_shader_args()
742 if (args->ac.view_index.used) in radv_declare_shader_args()
743 set_loc_shader(args, AC_UD_VIEW_INDEX, &user_sgpr_idx, 1); in radv_declare_shader_args()
748 set_vs_specific_input_locs(args, stage, in radv_declare_shader_args()
753 if (args->ac.view_index.used) in radv_declare_shader_args()
754 set_loc_shader(args, AC_UD_VIEW_INDEX, &user_sgpr_idx, 1); in radv_declare_shader_args()
756 if (args->ngg_gs_state.used) in radv_declare_shader_args()
757 set_loc_shader(args, AC_UD_NGG_GS_STATE, &user_sgpr_idx, 1); in radv_declare_shader_args()
765 args->shader_info->num_user_sgprs = user_sgpr_idx; in radv_declare_shader_args()