radv: add a new shader argument for non-monolithic shaders PC
This will be used to jump from VS to TCS/GS or TES to GS on GFX9+. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24697>
This commit is contained in:

committed by
Marge Bot

parent
7b4f10b434
commit
8ba1860fbd
@@ -169,7 +169,8 @@ enum radv_ud_index {
|
||||
AC_UD_FORCE_VRS_RATES = 10,
|
||||
AC_UD_TASK_RING_ENTRY = 11,
|
||||
AC_UD_NUM_VERTS_PER_PRIM = 12,
|
||||
AC_UD_SHADER_START = 13,
|
||||
AC_UD_NEXT_STAGE_PC = 13,
|
||||
AC_UD_SHADER_START = 14,
|
||||
AC_UD_VS_VERTEX_BUFFERS = AC_UD_SHADER_START,
|
||||
AC_UD_VS_BASE_VERTEX_START_INSTANCE,
|
||||
AC_UD_VS_PROLOG_INPUTS,
|
||||
|
@@ -531,6 +531,9 @@ declare_shader_args(const struct radv_device *device, const struct radv_pipeline
|
||||
add_ud_arg(args, 1, AC_ARG_INT, &args->tcs_epilog_pc, AC_UD_TCS_EPILOG_PC);
|
||||
}
|
||||
|
||||
if (!info->is_monolithic)
|
||||
add_ud_arg(args, 1, AC_ARG_INT, &args->next_stage_pc, AC_UD_NEXT_STAGE_PC);
|
||||
|
||||
ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.tcs_patch_id);
|
||||
ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.tcs_rel_ids);
|
||||
|
||||
@@ -635,6 +638,9 @@ declare_shader_args(const struct radv_device *device, const struct radv_pipeline
|
||||
declare_ngg_sgprs(info, args, has_ngg_provoking_vtx);
|
||||
}
|
||||
|
||||
if (!info->is_monolithic)
|
||||
add_ud_arg(args, 1, AC_ARG_INT, &args->next_stage_pc, AC_UD_NEXT_STAGE_PC);
|
||||
|
||||
ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[0]);
|
||||
ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_vtx_offset[1]);
|
||||
ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->ac.gs_prim_id);
|
||||
|
@@ -86,6 +86,9 @@ struct radv_shader_args {
|
||||
/* NGG VS streamout */
|
||||
struct ac_arg num_verts_per_prim;
|
||||
|
||||
/* For non-monolithic VS or TES on GFX9+. */
|
||||
struct ac_arg next_stage_pc;
|
||||
|
||||
struct radv_userdata_locations user_sgprs_locs;
|
||||
unsigned num_user_sgprs;
|
||||
|
||||
|
Reference in New Issue
Block a user