From 9b2e59abc5a652beaaf0358985a3e757bb513520 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 28 Feb 2023 09:24:51 +0100 Subject: [PATCH] radv: declare a new user SGPR for the dynamic line rasterization mode Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_shader.h | 1 + src/amd/vulkan/radv_shader_args.c | 3 +++ src/amd/vulkan/radv_shader_args.h | 1 + 3 files changed, 5 insertions(+) diff --git a/src/amd/vulkan/radv_shader.h b/src/amd/vulkan/radv_shader.h index 1d2e485..5e893e5 100644 --- a/src/amd/vulkan/radv_shader.h +++ b/src/amd/vulkan/radv_shader.h @@ -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, diff --git a/src/amd/vulkan/radv_shader_args.c b/src/amd/vulkan/radv_shader_args.c index 2765276..dfe11e9 100644 --- a/src/amd/vulkan/radv_shader_args.c +++ b/src/amd/vulkan/radv_shader_args.c @@ -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); diff --git a/src/amd/vulkan/radv_shader_args.h b/src/amd/vulkan/radv_shader_args.h index e3fb771..49928b6 100644 --- a/src/amd/vulkan/radv_shader_args.h +++ b/src/amd/vulkan/radv_shader_args.h @@ -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]; -- 2.7.4