• Home
  • Raw
  • Download

Lines Matching refs:args

42 set_loc_shader(struct radv_shader_args *args, int idx, uint8_t *sgpr_idx, uint8_t num_sgprs)  in set_loc_shader()  argument
44 struct radv_userdata_info *ud_info = &args->user_sgprs_locs.shader_data[idx]; in set_loc_shader()
51 set_loc_shader_ptr(struct radv_shader_args *args, int idx, uint8_t *sgpr_idx) in set_loc_shader_ptr() argument
57 set_loc_shader(args, idx, sgpr_idx, use_32bit_pointers ? 1 : 2); in set_loc_shader_ptr()
61 set_loc_desc(struct radv_shader_args *args, int idx, uint8_t *sgpr_idx) in set_loc_desc() argument
63 struct radv_userdata_locations *locs = &args->user_sgprs_locs; in set_loc_desc()
153 struct radv_shader_args *args, gl_shader_stage stage, bool has_previous_stage, in allocate_user_sgprs() argument
177 user_sgpr_count += args->load_grid_size_from_user_sgpr ? 3 : 2; in allocate_user_sgprs()
191 if (!args->is_gs_copy_shader) in allocate_user_sgprs()
248 struct radv_shader_args *args) in declare_global_input_sgprs() argument
257 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_CONST_PTR, &args->descriptor_sets[i]); in declare_global_input_sgprs()
260 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_CONST_PTR_PTR, &args->descriptor_sets[0]); in declare_global_input_sgprs()
265 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_CONST_PTR, &args->ac.push_constants); in declare_global_input_sgprs()
269 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.inline_push_consts[i]); in declare_global_input_sgprs()
271 args->ac.inline_push_const_mask = user_sgpr_info->inline_push_constant_mask; in declare_global_input_sgprs()
274 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_CONST_DESC_PTR, &args->streamout_buffers); in declare_global_input_sgprs()
279 declare_vs_specific_input_sgprs(const struct radv_shader_info *info, struct radv_shader_args *args, in declare_vs_specific_input_sgprs() argument
284 ac_add_arg(&args->ac, AC_ARG_SGPR, 2, AC_ARG_INT, &args->prolog_inputs); in declare_vs_specific_input_sgprs()
286 if (!args->is_gs_copy_shader && (stage == MESA_SHADER_VERTEX || in declare_vs_specific_input_sgprs()
289 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_CONST_DESC_PTR, &args->ac.vertex_buffers); in declare_vs_specific_input_sgprs()
291 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.base_vertex); in declare_vs_specific_input_sgprs()
293 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.draw_id); in declare_vs_specific_input_sgprs()
296 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.start_instance); in declare_vs_specific_input_sgprs()
303 struct radv_shader_args *args) in declare_vs_input_vgprs() argument
305 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.vertex_id); in declare_vs_input_vgprs()
306 if (!args->is_gs_copy_shader) { 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, NULL); /* user VGPR */ in declare_vs_input_vgprs()
312 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.instance_id); in declare_vs_input_vgprs()
314 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.vs_rel_patch_id); in declare_vs_input_vgprs()
315 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* user vgpr */ in declare_vs_input_vgprs()
316 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.vs_rel_patch_id); in declare_vs_input_vgprs()
319 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.instance_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()
325 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* user vgpr */ in declare_vs_input_vgprs()
326 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* user vgpr */ in declare_vs_input_vgprs()
327 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.instance_id); in declare_vs_input_vgprs()
329 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* unused */ in declare_vs_input_vgprs()
330 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.vs_prim_id); in declare_vs_input_vgprs()
331 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.instance_id); in declare_vs_input_vgprs()
334 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.instance_id); in declare_vs_input_vgprs()
335 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.vs_prim_id); in declare_vs_input_vgprs()
336 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* unused */ in declare_vs_input_vgprs()
345 ac_add_arg(&args->ac, AC_ARG_VGPR, 4, AC_ARG_INT, &args->vs_inputs[i]); in declare_vs_input_vgprs()
349 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); in declare_vs_input_vgprs()
354 declare_streamout_sgprs(const struct radv_shader_info *info, struct radv_shader_args *args, in declare_streamout_sgprs() argument
363 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.streamout_config); in declare_streamout_sgprs()
364 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.streamout_write_index); in declare_streamout_sgprs()
366 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); in declare_streamout_sgprs()
374 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.streamout_offset[i]); in declare_streamout_sgprs()
379 declare_tes_input_vgprs(struct radv_shader_args *args) in declare_tes_input_vgprs() argument
381 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.tes_u); in declare_tes_input_vgprs()
382 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.tes_v); in declare_tes_input_vgprs()
383 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.tes_rel_patch_id); in declare_tes_input_vgprs()
384 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.tes_patch_id); in declare_tes_input_vgprs()
388 declare_ms_input_sgprs(const struct radv_shader_info *info, struct radv_shader_args *args) in declare_ms_input_sgprs() argument
390 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.base_vertex); in declare_ms_input_sgprs()
391 ac_add_arg(&args->ac, AC_ARG_SGPR, 3, AC_ARG_INT, &args->ac.num_work_groups); in declare_ms_input_sgprs()
393 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.draw_id); in declare_ms_input_sgprs()
396 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.task_ring_entry); in declare_ms_input_sgprs()
401 declare_ms_input_vgprs(struct radv_shader_args *args) in declare_ms_input_vgprs() argument
403 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.vertex_id); in declare_ms_input_vgprs()
404 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* user vgpr */ in declare_ms_input_vgprs()
405 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* user vgpr */ in declare_ms_input_vgprs()
406 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* instance_id */ in declare_ms_input_vgprs()
410 declare_ps_input_vgprs(const struct radv_shader_info *info, struct radv_shader_args *args) in declare_ps_input_vgprs() argument
414 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_INT, &args->ac.persp_sample); in declare_ps_input_vgprs()
415 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_INT, &args->ac.persp_center); in declare_ps_input_vgprs()
416 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_INT, &args->ac.persp_centroid); in declare_ps_input_vgprs()
417 ac_add_arg(&args->ac, AC_ARG_VGPR, 3, AC_ARG_INT, &args->ac.pull_model); in declare_ps_input_vgprs()
418 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_INT, &args->ac.linear_sample); in declare_ps_input_vgprs()
419 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_INT, &args->ac.linear_center); in declare_ps_input_vgprs()
420 ac_add_arg(&args->ac, AC_ARG_VGPR, 2, AC_ARG_INT, &args->ac.linear_centroid); in declare_ps_input_vgprs()
421 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, NULL); /* line stipple tex */ in declare_ps_input_vgprs()
422 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.frag_pos[0]); in declare_ps_input_vgprs()
423 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.frag_pos[1]); in declare_ps_input_vgprs()
424 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.frag_pos[2]); in declare_ps_input_vgprs()
425 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->ac.frag_pos[3]); in declare_ps_input_vgprs()
426 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.front_face); in declare_ps_input_vgprs()
427 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.ancillary); in declare_ps_input_vgprs()
428 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.sample_coverage); in declare_ps_input_vgprs()
429 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, NULL); /* fixed pt */ in declare_ps_input_vgprs()
431 if (args->remap_spi_ps_input) { in declare_ps_input_vgprs()
437 for (unsigned i = 0, vgpr_arg = 0, vgpr_reg = 0; i < args->ac.arg_count; i++) { in declare_ps_input_vgprs()
438 if (args->ac.args[i].file != AC_ARG_VGPR) { in declare_ps_input_vgprs()
444 args->ac.args[i].skip = true; in declare_ps_input_vgprs()
446 args->ac.args[i].offset = vgpr_reg; in declare_ps_input_vgprs()
447 vgpr_reg += args->ac.args[i].size; in declare_ps_input_vgprs()
457 ac_add_arg(&args->ac, AC_ARG_VGPR, 4, AC_ARG_INT, NULL); in declare_ps_input_vgprs()
462 declare_ngg_sgprs(const struct radv_shader_info *info, struct radv_shader_args *args, in declare_ngg_sgprs() argument
466 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ngg_query_state); in declare_ngg_sgprs()
469 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ngg_culling_settings); in declare_ngg_sgprs()
470 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ngg_viewport_scale[0]); in declare_ngg_sgprs()
471 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ngg_viewport_scale[1]); in declare_ngg_sgprs()
472 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ngg_viewport_translate[0]); in declare_ngg_sgprs()
473 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ngg_viewport_translate[1]); in declare_ngg_sgprs()
478 set_global_input_locs(struct radv_shader_args *args, const struct user_sgpr_info *user_sgpr_info, in set_global_input_locs() argument
482 for (unsigned i = 0; i < ARRAY_SIZE(args->descriptor_sets); i++) { in set_global_input_locs()
483 if (args->descriptor_sets[i].used) in set_global_input_locs()
484 set_loc_desc(args, i, user_sgpr_idx); in set_global_input_locs()
487 set_loc_shader_ptr(args, AC_UD_INDIRECT_DESCRIPTOR_SETS, user_sgpr_idx); in set_global_input_locs()
490 if (args->ac.push_constants.used) { in set_global_input_locs()
491 set_loc_shader_ptr(args, AC_UD_PUSH_CONSTANTS, user_sgpr_idx); in set_global_input_locs()
495 set_loc_shader(args, AC_UD_INLINE_PUSH_CONSTANTS, user_sgpr_idx, in set_global_input_locs()
499 if (args->streamout_buffers.used) { in set_global_input_locs()
500 set_loc_shader_ptr(args, AC_UD_STREAMOUT_BUFFERS, user_sgpr_idx); in set_global_input_locs()
505 set_vs_specific_input_locs(struct radv_shader_args *args, gl_shader_stage stage, in set_vs_specific_input_locs() argument
509 if (args->prolog_inputs.used) in set_vs_specific_input_locs()
510 set_loc_shader(args, AC_UD_VS_PROLOG_INPUTS, user_sgpr_idx, 2); in set_vs_specific_input_locs()
512 if (!args->is_gs_copy_shader && (stage == MESA_SHADER_VERTEX || in set_vs_specific_input_locs()
514 if (args->ac.vertex_buffers.used) { in set_vs_specific_input_locs()
515 set_loc_shader_ptr(args, AC_UD_VS_VERTEX_BUFFERS, user_sgpr_idx); in set_vs_specific_input_locs()
518 unsigned vs_num = args->ac.base_vertex.used + args->ac.draw_id.used + in set_vs_specific_input_locs()
519 args->ac.start_instance.used; in set_vs_specific_input_locs()
520 set_loc_shader(args, AC_UD_VS_BASE_VERTEX_START_INSTANCE, user_sgpr_idx, vs_num); in set_vs_specific_input_locs()
525 set_ms_input_locs(struct radv_shader_args *args, uint8_t *user_sgpr_idx) in set_ms_input_locs() argument
528 args->ac.base_vertex.used + 3 * args->ac.num_work_groups.used + args->ac.draw_id.used; in set_ms_input_locs()
529 set_loc_shader(args, AC_UD_VS_BASE_VERTEX_START_INSTANCE, user_sgpr_idx, vs_num); in set_ms_input_locs()
531 if (args->ac.task_ring_entry.used) in set_ms_input_locs()
532 set_loc_shader(args, AC_UD_TASK_RING_ENTRY, user_sgpr_idx, 1); in set_ms_input_locs()
539 struct radv_shader_args *args) in radv_declare_shader_args() argument
553 args->user_sgprs_locs.descriptor_sets[i].sgpr_idx = -1; in radv_declare_shader_args()
555 args->user_sgprs_locs.shader_data[i].sgpr_idx = -1; in radv_declare_shader_args()
557 allocate_user_sgprs(gfx_level, info, args, stage, has_previous_stage, previous_stage, in radv_declare_shader_args()
560 if (args->explicit_scratch_args) { in radv_declare_shader_args()
561 ac_add_arg(&args->ac, AC_ARG_SGPR, 2, AC_ARG_CONST_DESC_PTR, &args->ring_offsets); in radv_declare_shader_args()
564 ac_add_arg(&args->ac, AC_ARG_SGPR, 2, AC_ARG_CONST_DESC_PTR, &args->task_ring_offsets); in radv_declare_shader_args()
574 declare_global_input_sgprs(info, &user_sgpr_info, args); in radv_declare_shader_args()
577 ac_add_arg(&args->ac, AC_ARG_SGPR, 2, AC_ARG_CONST_PTR, &args->ac.sbt_descriptors); in radv_declare_shader_args()
581 if (args->load_grid_size_from_user_sgpr) in radv_declare_shader_args()
582 ac_add_arg(&args->ac, AC_ARG_SGPR, 3, AC_ARG_INT, &args->ac.num_work_groups); in radv_declare_shader_args()
584 ac_add_arg(&args->ac, AC_ARG_SGPR, 2, AC_ARG_CONST_PTR, &args->ac.num_work_groups); in radv_declare_shader_args()
588 ac_add_arg(&args->ac, AC_ARG_SGPR, 2, AC_ARG_CONST_PTR, &args->ac.ray_launch_size_addr); in radv_declare_shader_args()
592 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.draw_id); in radv_declare_shader_args()
596 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.task_ring_entry); in radv_declare_shader_args()
597 ac_add_arg(&args->ac, AC_ARG_SGPR, 2, AC_ARG_INT, &args->task_ib_addr); in radv_declare_shader_args()
598 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->task_ib_stride); in radv_declare_shader_args()
603 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.workgroup_ids[i]); in radv_declare_shader_args()
608 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tg_size); in radv_declare_shader_args()
611 if (args->explicit_scratch_args && gfx_level < GFX11) { in radv_declare_shader_args()
612 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); in radv_declare_shader_args()
616 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.local_invocation_ids); in radv_declare_shader_args()
618 ac_add_arg(&args->ac, AC_ARG_VGPR, 3, AC_ARG_INT, &args->ac.local_invocation_ids); in radv_declare_shader_args()
624 declare_vs_specific_input_sgprs(info, args, stage, has_previous_stage, previous_stage); in radv_declare_shader_args()
626 declare_global_input_sgprs(info, &user_sgpr_info, args); in radv_declare_shader_args()
629 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.view_index); in radv_declare_shader_args()
633 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.force_vrs_rates); in radv_declare_shader_args()
637 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.es2gs_offset); in radv_declare_shader_args()
641 declare_streamout_sgprs(info, args, stage); in radv_declare_shader_args()
644 if (args->explicit_scratch_args) { in radv_declare_shader_args()
645 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); in radv_declare_shader_args()
648 declare_vs_input_vgprs(gfx_level, info, args); in radv_declare_shader_args()
653 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tess_offchip_offset); in radv_declare_shader_args()
654 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.merged_wave_info); in radv_declare_shader_args()
655 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tcs_factor_offset); in radv_declare_shader_args()
658 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tcs_wave_id); in radv_declare_shader_args()
660 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); in radv_declare_shader_args()
663 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); // unknown in radv_declare_shader_args()
664 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); // unknown in radv_declare_shader_args()
666 declare_vs_specific_input_sgprs(info, args, stage, has_previous_stage, previous_stage); in radv_declare_shader_args()
668 declare_global_input_sgprs(info, &user_sgpr_info, args); in radv_declare_shader_args()
671 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.view_index); in radv_declare_shader_args()
674 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.tcs_patch_id); in radv_declare_shader_args()
675 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.tcs_rel_ids); in radv_declare_shader_args()
677 declare_vs_input_vgprs(gfx_level, info, args); in radv_declare_shader_args()
679 declare_global_input_sgprs(info, &user_sgpr_info, args); in radv_declare_shader_args()
682 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.view_index); in radv_declare_shader_args()
685 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tess_offchip_offset); in radv_declare_shader_args()
686 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tcs_factor_offset); in radv_declare_shader_args()
687 if (args->explicit_scratch_args) { in radv_declare_shader_args()
688 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); in radv_declare_shader_args()
690 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.tcs_patch_id); in radv_declare_shader_args()
691 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.tcs_rel_ids); in radv_declare_shader_args()
698 declare_global_input_sgprs(info, &user_sgpr_info, args); in radv_declare_shader_args()
701 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.view_index); in radv_declare_shader_args()
704 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tess_offchip_offset); in radv_declare_shader_args()
705 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); in radv_declare_shader_args()
706 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.es2gs_offset); in radv_declare_shader_args()
708 declare_streamout_sgprs(info, args, stage); in radv_declare_shader_args()
709 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tess_offchip_offset); in radv_declare_shader_args()
711 if (args->explicit_scratch_args) { in radv_declare_shader_args()
712 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); in radv_declare_shader_args()
714 declare_tes_input_vgprs(args); in radv_declare_shader_args()
720 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.gs_tg_info); in radv_declare_shader_args()
722 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.gs2vs_offset); in radv_declare_shader_args()
725 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.merged_wave_info); in radv_declare_shader_args()
726 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tess_offchip_offset); in radv_declare_shader_args()
729 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); in radv_declare_shader_args()
732 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); // unknown in radv_declare_shader_args()
733 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL); // unknown in radv_declare_shader_args()
736 declare_vs_specific_input_sgprs(info, args, stage, has_previous_stage, previous_stage); in radv_declare_shader_args()
738 declare_ms_input_sgprs(info, args); in radv_declare_shader_args()
741 declare_global_input_sgprs(info, &user_sgpr_info, args); in radv_declare_shader_args()
744 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.view_index); in radv_declare_shader_args()
748 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.force_vrs_rates); in radv_declare_shader_args()
752 declare_ngg_sgprs(info, args, has_ngg_query); in radv_declare_shader_args()
755 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[0]); in radv_declare_shader_args()
756 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[1]); in radv_declare_shader_args()
757 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_prim_id); in radv_declare_shader_args()
758 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_invocation_id); in radv_declare_shader_args()
759 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[2]); in radv_declare_shader_args()
762 declare_vs_input_vgprs(gfx_level, info, args); in radv_declare_shader_args()
764 declare_tes_input_vgprs(args); in radv_declare_shader_args()
766 declare_ms_input_vgprs(args); in radv_declare_shader_args()
769 declare_global_input_sgprs(info, &user_sgpr_info, args); in radv_declare_shader_args()
772 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.view_index); in radv_declare_shader_args()
776 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.force_vrs_rates); in radv_declare_shader_args()
779 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.gs2vs_offset); in radv_declare_shader_args()
780 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.gs_wave_id); in radv_declare_shader_args()
781 if (args->explicit_scratch_args) { in radv_declare_shader_args()
782 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); in radv_declare_shader_args()
784 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[0]); in radv_declare_shader_args()
785 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[1]); in radv_declare_shader_args()
786 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_prim_id); in radv_declare_shader_args()
787 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[2]); in radv_declare_shader_args()
788 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[3]); in radv_declare_shader_args()
789 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[4]); in radv_declare_shader_args()
790 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[5]); in radv_declare_shader_args()
791 ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_invocation_id); in radv_declare_shader_args()
795 declare_global_input_sgprs(info, &user_sgpr_info, args); in radv_declare_shader_args()
798 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ps_epilog_pc); in radv_declare_shader_args()
801 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.prim_mask); in radv_declare_shader_args()
802 if (args->explicit_scratch_args && gfx_level < GFX11) { in radv_declare_shader_args()
803 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); in radv_declare_shader_args()
806 declare_ps_input_vgprs(info, args); in radv_declare_shader_args()
814 set_loc_shader_ptr(args, AC_UD_SCRATCH_RING_OFFSETS, &user_sgpr_idx); in radv_declare_shader_args()
816 set_loc_shader_ptr(args, AC_UD_CS_TASK_RING_OFFSETS, &user_sgpr_idx); in radv_declare_shader_args()
825 set_vs_specific_input_locs(args, stage, has_previous_stage, previous_stage, &user_sgpr_idx); in radv_declare_shader_args()
827 set_ms_input_locs(args, &user_sgpr_idx); in radv_declare_shader_args()
829 set_global_input_locs(args, &user_sgpr_info, &user_sgpr_idx); in radv_declare_shader_args()
834 if (args->ac.sbt_descriptors.used) { in radv_declare_shader_args()
835 set_loc_shader_ptr(args, AC_UD_CS_SBT_DESCRIPTORS, &user_sgpr_idx); in radv_declare_shader_args()
837 if (args->ac.num_work_groups.used) { in radv_declare_shader_args()
838 set_loc_shader(args, AC_UD_CS_GRID_SIZE, &user_sgpr_idx, in radv_declare_shader_args()
839 args->load_grid_size_from_user_sgpr ? 3 : 2); in radv_declare_shader_args()
841 if (args->ac.ray_launch_size_addr.used) { in radv_declare_shader_args()
842 set_loc_shader_ptr(args, AC_UD_CS_RAY_LAUNCH_SIZE_ADDR, &user_sgpr_idx); in radv_declare_shader_args()
844 if (args->ac.draw_id.used) { in radv_declare_shader_args()
845 set_loc_shader(args, AC_UD_CS_TASK_DRAW_ID, &user_sgpr_idx, 1); in radv_declare_shader_args()
847 if (args->ac.task_ring_entry.used) { in radv_declare_shader_args()
848 set_loc_shader(args, AC_UD_TASK_RING_ENTRY, &user_sgpr_idx, 1); in radv_declare_shader_args()
850 if (args->task_ib_addr.used) { in radv_declare_shader_args()
851 assert(args->task_ib_stride.used); in radv_declare_shader_args()
852 set_loc_shader(args, AC_UD_CS_TASK_IB, &user_sgpr_idx, 3); in radv_declare_shader_args()
856 if (args->ac.view_index.used) in radv_declare_shader_args()
857 set_loc_shader(args, AC_UD_VIEW_INDEX, &user_sgpr_idx, 1); in radv_declare_shader_args()
858 if (args->ac.force_vrs_rates.used) in radv_declare_shader_args()
859 set_loc_shader(args, AC_UD_FORCE_VRS_RATES, &user_sgpr_idx, 1); in radv_declare_shader_args()
862 if (args->ac.view_index.used) in radv_declare_shader_args()
863 set_loc_shader(args, AC_UD_VIEW_INDEX, &user_sgpr_idx, 1); in radv_declare_shader_args()
866 if (args->ac.view_index.used) in radv_declare_shader_args()
867 set_loc_shader(args, AC_UD_VIEW_INDEX, &user_sgpr_idx, 1); in radv_declare_shader_args()
870 if (args->ac.view_index.used) in radv_declare_shader_args()
871 set_loc_shader(args, AC_UD_VIEW_INDEX, &user_sgpr_idx, 1); in radv_declare_shader_args()
873 if (args->ac.force_vrs_rates.used) in radv_declare_shader_args()
874 set_loc_shader(args, AC_UD_FORCE_VRS_RATES, &user_sgpr_idx, 1); in radv_declare_shader_args()
876 if (args->ngg_query_state.used) { in radv_declare_shader_args()
877 set_loc_shader(args, AC_UD_NGG_QUERY_STATE, &user_sgpr_idx, 1); in radv_declare_shader_args()
880 if (args->ngg_culling_settings.used) { in radv_declare_shader_args()
881 set_loc_shader(args, AC_UD_NGG_CULLING_SETTINGS, &user_sgpr_idx, 1); in radv_declare_shader_args()
884 if (args->ngg_viewport_scale[0].used) { in radv_declare_shader_args()
885 assert(args->ngg_viewport_scale[1].used && in radv_declare_shader_args()
886 args->ngg_viewport_translate[0].used && in radv_declare_shader_args()
887 args->ngg_viewport_translate[1].used); in radv_declare_shader_args()
888 set_loc_shader(args, AC_UD_NGG_VIEWPORT, &user_sgpr_idx, 4); in radv_declare_shader_args()
892 if (args->ps_epilog_pc.used) in radv_declare_shader_args()
893 set_loc_shader(args, AC_UD_PS_EPILOG_PC, &user_sgpr_idx, 1); in radv_declare_shader_args()
899 args->num_user_sgprs = user_sgpr_idx; in radv_declare_shader_args()
904 struct radv_shader_args *args) in radv_declare_ps_epilog_args() argument
908 ac_add_arg(&args->ac, AC_ARG_SGPR, 2, AC_ARG_CONST_DESC_PTR, &args->ring_offsets); in radv_declare_ps_epilog_args()
910 ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset); in radv_declare_ps_epilog_args()
919 ac_add_arg(&args->ac, AC_ARG_VGPR, 4, AC_ARG_FLOAT, &args->ps_epilog_inputs[num_inputs]); in radv_declare_ps_epilog_args()