radv: declare a new user SGPR for the dynamic line rasterization mode
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 28 Feb 2023 08:24:51 +0000 (09:24 +0100)
committerMarge Bot <emma+marge@anholt.net>
Mon, 22 May 2023 07:58:35 +0000 (07:58 +0000)
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21587>

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

index 1d2e485..5e893e5 100644 (file)
@@ -169,6 +169,7 @@ enum radv_ud_index {
    AC_UD_VS_MAX_UD,
    AC_UD_PS_EPILOG_PC,
    AC_UD_PS_NUM_SAMPLES,
+   AC_UD_PS_LINE_RAST_MODE,
    AC_UD_PS_MAX_UD,
    AC_UD_CS_GRID_SIZE = AC_UD_SHADER_START,
    AC_UD_CS_SBT_DESCRIPTORS,
index 2765276..dfe11e9 100644 (file)
@@ -644,6 +644,9 @@ declare_shader_args(const struct radv_device *device, const struct radv_pipeline
          add_ud_arg(args, 1, AC_ARG_INT, &args->ps_num_samples, AC_UD_PS_NUM_SAMPLES);
       }
 
+      if (key->dynamic_line_rast_mode)
+         add_ud_arg(args, 1, AC_ARG_INT, &args->ps_line_rast_mode, AC_UD_PS_LINE_RAST_MODE);
+
       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);
index e3fb771..49928b6 100644 (file)
@@ -60,6 +60,7 @@ struct radv_shader_args {
    /* Fragment shaders */
    struct ac_arg ps_epilog_pc;
    struct ac_arg ps_num_samples;
+   struct ac_arg ps_line_rast_mode;
 
    struct ac_arg prolog_inputs;
    struct ac_arg vs_inputs[MAX_VERTEX_ATTRIBS];