From: Samuel Pitoiset Date: Wed, 23 Aug 2023 16:11:14 +0000 (+0200) Subject: radv: preserve shader arguments for non-monolithic VS/TCS on GFX9+ X-Git-Tag: upstream/23.3.3~2794 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4224da67264618961bbe74520d1e94399293cfa2;p=platform%2Fupstream%2Fmesa.git radv: preserve shader arguments for non-monolithic VS/TCS on GFX9+ This is more robust than re-creating the function signature in ACO. Signed-off-by: Samuel Pitoiset Part-of: --- diff --git a/src/amd/vulkan/radv_shader_args.c b/src/amd/vulkan/radv_shader_args.c index a3add92..705a72f 100644 --- a/src/amd/vulkan/radv_shader_args.c +++ b/src/amd/vulkan/radv_shader_args.c @@ -538,6 +538,30 @@ declare_shader_args(const struct radv_device *device, const struct radv_pipeline ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.tcs_rel_ids); declare_vs_input_vgprs(gfx_level, info, args, true); + + if (!info->is_monolithic) { + /* SGPRs */ + ac_add_preserved(&args->ac, &args->ac.ring_offsets); + ac_add_preserved(&args->ac, &args->ac.tess_offchip_offset); + ac_add_preserved(&args->ac, &args->ac.merged_wave_info); + ac_add_preserved(&args->ac, &args->ac.tcs_factor_offset); + + if (gfx_level >= GFX11) { + ac_add_preserved(&args->ac, &args->ac.tcs_wave_id); + } else { + ac_add_preserved(&args->ac, &args->ac.scratch_offset); + } + + ac_add_preserved(&args->ac, &args->descriptor_sets[0]); + ac_add_preserved(&args->ac, &args->ac.push_constants); + ac_add_preserved(&args->ac, &args->ac.view_index); + ac_add_preserved(&args->ac, &args->tcs_offchip_layout); + ac_add_preserved(&args->ac, &args->tcs_epilog_pc); + + /* VGPRs */ + ac_add_preserved(&args->ac, &args->ac.tcs_patch_id); + ac_add_preserved(&args->ac, &args->ac.tcs_rel_ids); + } } else { declare_global_input_sgprs(info, user_sgpr_info, args);