From 542992d037998efc926c9461bf7a07cbd65468b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timur=20Krist=C3=B3f?= Date: Mon, 25 Mar 2024 15:02:24 +0100 Subject: [PATCH] radv: Declare tess_lvl_in/out args for TCS epilogs. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Timur Kristóf Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_aco_shader_info.h | 5 +++++ src/amd/vulkan/radv_shader_args.c | 5 +++++ src/amd/vulkan/radv_shader_args.h | 2 ++ 3 files changed, 12 insertions(+) diff --git a/src/amd/vulkan/radv_aco_shader_info.h b/src/amd/vulkan/radv_aco_shader_info.h index d8cb64b1eb5..77d09fb6730 100644 --- a/src/amd/vulkan/radv_aco_shader_info.h +++ b/src/amd/vulkan/radv_aco_shader_info.h @@ -103,6 +103,11 @@ radv_aco_convert_tcs_epilog_key(struct aco_tcs_epilog_info *aco_info, const stru aco_info->rel_patch_id = radv_args->rel_patch_id; aco_info->tcs_out_current_patch_data_offset = radv_args->tcs_out_current_patch_data_offset; aco_info->patch_base = radv_args->patch_base; + + for (unsigned i = 0; i < 4; ++i) + aco_info->tess_lvl_out[i] = radv_args->tess_lvl_out[i]; + for (unsigned i = 0; i < 2; ++i) + aco_info->tess_lvl_in[i] = radv_args->tess_lvl_in[i]; } static inline void diff --git a/src/amd/vulkan/radv_shader_args.c b/src/amd/vulkan/radv_shader_args.c index fff62e018c7..d7ae795cf32 100644 --- a/src/amd/vulkan/radv_shader_args.c +++ b/src/amd/vulkan/radv_shader_args.c @@ -937,4 +937,9 @@ radv_declare_tcs_epilog_args(const struct radv_device *device, const struct radv ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->tcs_out_current_patch_data_offset); ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->invocation_id); ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_INT, &args->rel_patch_id); + + for (unsigned i = 0; i < 4; ++i) + ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->tess_lvl_out[i]); + for (unsigned i = 0; i < 2; ++i) + ac_add_arg(&args->ac, AC_ARG_VGPR, 1, AC_ARG_FLOAT, &args->tess_lvl_in[i]); } diff --git a/src/amd/vulkan/radv_shader_args.h b/src/amd/vulkan/radv_shader_args.h index 38b4b663fc0..12847e1b9cd 100644 --- a/src/amd/vulkan/radv_shader_args.h +++ b/src/amd/vulkan/radv_shader_args.h @@ -78,6 +78,8 @@ struct radv_shader_args { struct ac_arg tcs_out_current_patch_data_offset; struct ac_arg invocation_id; struct ac_arg rel_patch_id; + struct ac_arg tess_lvl_out[4]; + struct ac_arg tess_lvl_in[2]; /* TES */ /* # [0:7] = the number of tessellation patches