radv: declare new argument for the TCS epilog PC
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 31 Jul 2023 14:15:27 +0000 (16:15 +0200)
committerMarge Bot <emma+marge@anholt.net>
Wed, 2 Aug 2023 16:59:18 +0000 (16:59 +0000)
To jump to the TCS epilog.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24404>

src/amd/vulkan/radv_shader.h
src/amd/vulkan/radv_shader_args.c
src/amd/vulkan/radv_shader_args.h

index 9cb0841..11d7e06 100644 (file)
@@ -188,6 +188,7 @@ enum radv_ud_index {
    AC_UD_CS_MAX_UD,
    AC_UD_GS_MAX_UD,
    AC_UD_TCS_OFFCHIP_LAYOUT = AC_UD_VS_MAX_UD,
+   AC_UD_TCS_EPILOG_PC,
    AC_UD_TCS_MAX_UD,
    AC_UD_TES_STATE = AC_UD_SHADER_START,
    AC_UD_TES_MAX_UD,
index a68a969..37e3b60 100644 (file)
@@ -530,6 +530,10 @@ declare_shader_args(const struct radv_device *device, const struct radv_pipeline
             add_ud_arg(args, 1, AC_ARG_INT, &args->tcs_offchip_layout, AC_UD_TCS_OFFCHIP_LAYOUT);
          }
 
+         if (info->has_epilog) {
+            add_ud_arg(args, 1, AC_ARG_INT, &args->tcs_epilog_pc, AC_UD_TCS_EPILOG_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);
 
@@ -545,6 +549,10 @@ declare_shader_args(const struct radv_device *device, const struct radv_pipeline
             add_ud_arg(args, 1, AC_ARG_INT, &args->tcs_offchip_layout, AC_UD_TCS_OFFCHIP_LAYOUT);
          }
 
+         if (info->has_epilog) {
+            add_ud_arg(args, 1, AC_ARG_INT, &args->tcs_epilog_pc, AC_UD_TCS_EPILOG_PC);
+         }
+
          ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tess_offchip_offset);
          ac_add_arg(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.tcs_factor_offset);
          if (args->explicit_scratch_args) {
index 94a3015..b9be54a 100644 (file)
@@ -68,6 +68,7 @@ struct radv_shader_args {
     * # [6:13] = the number of tessellation patches
     */
    struct ac_arg tcs_offchip_layout;
+   struct ac_arg tcs_epilog_pc;
 
    /* TES */
    /* # [0:7] = the number of tessellation patches