radv: declare shader arguments for the number of samples for FS
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18677>
This commit is contained in:
parent
f85b7e294b
commit
2a0e4b5ef7
3 changed files with 10 additions and 0 deletions
|
|
@ -150,6 +150,7 @@ enum radv_ud_index {
|
|||
AC_UD_VS_PROLOG_INPUTS,
|
||||
AC_UD_VS_MAX_UD,
|
||||
AC_UD_PS_EPILOG_PC,
|
||||
AC_UD_PS_NUM_SAMPLES,
|
||||
AC_UD_PS_MAX_UD,
|
||||
AC_UD_CS_GRID_SIZE = AC_UD_SHADER_START,
|
||||
AC_UD_CS_SBT_DESCRIPTORS,
|
||||
|
|
|
|||
|
|
@ -200,6 +200,8 @@ allocate_user_sgprs(enum amd_gfx_level gfx_level, const struct radv_shader_info
|
|||
/* epilog continue PC */
|
||||
if (info->ps.has_epilog)
|
||||
user_sgpr_count += 1;
|
||||
if (info->ps.needs_sample_positions && key->dynamic_rasterization_samples)
|
||||
user_sgpr_count += 1;
|
||||
break;
|
||||
case MESA_SHADER_VERTEX:
|
||||
if (!args->is_gs_copy_shader)
|
||||
|
|
@ -836,6 +838,10 @@ radv_declare_shader_args(enum amd_gfx_level gfx_level, const struct radv_pipelin
|
|||
ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ps_epilog_pc);
|
||||
}
|
||||
|
||||
if (info->ps.needs_sample_positions && key->dynamic_rasterization_samples) {
|
||||
ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ps_num_samples);
|
||||
}
|
||||
|
||||
ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.prim_mask);
|
||||
if (args->explicit_scratch_args && gfx_level < GFX11) {
|
||||
ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.scratch_offset);
|
||||
|
|
@ -941,6 +947,8 @@ radv_declare_shader_args(enum amd_gfx_level gfx_level, const struct radv_pipelin
|
|||
case MESA_SHADER_FRAGMENT:
|
||||
if (args->ps_epilog_pc.used)
|
||||
set_loc_shader(args, AC_UD_PS_EPILOG_PC, &user_sgpr_idx, 1);
|
||||
if (args->ps_num_samples.used)
|
||||
set_loc_shader(args, AC_UD_PS_NUM_SAMPLES, &user_sgpr_idx, 1);
|
||||
break;
|
||||
default:
|
||||
unreachable("Shader stage not implemented");
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ struct radv_shader_args {
|
|||
|
||||
/* Fragment shaders */
|
||||
struct ac_arg ps_epilog_pc;
|
||||
struct ac_arg ps_num_samples;
|
||||
|
||||
struct ac_arg prolog_inputs;
|
||||
struct ac_arg vs_inputs[MAX_VERTEX_ATTRIBS];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue