From 53ab1642340c4e462a0dc4d0743d931aeafb286e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timur=20Krist=C3=B3f?= Date: Mon, 25 Mar 2024 15:47:16 +0100 Subject: [PATCH] radv: Always pass tess factors to epilogs in registers. 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/nir/radv_nir_lower_io.c | 2 +- src/amd/vulkan/radv_aco_shader_info.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/amd/vulkan/nir/radv_nir_lower_io.c b/src/amd/vulkan/nir/radv_nir_lower_io.c index cddbcb5c7cd..dafbc0a71b7 100644 --- a/src/amd/vulkan/nir/radv_nir_lower_io.c +++ b/src/amd/vulkan/nir/radv_nir_lower_io.c @@ -153,7 +153,7 @@ radv_nir_lower_io_to_mem(struct radv_device *device, struct radv_shader_stage *s NIR_PASS_V(nir, ac_nir_lower_hs_outputs_to_mem, map_output, device->physical_device->rad_info.gfx_level, info->tcs.tes_reads_tess_factors, info->tcs.tes_inputs_read, info->tcs.tes_patch_inputs_read, info->tcs.num_linked_outputs, info->tcs.num_linked_patch_outputs, info->wave_size, false, false, - !info->has_epilog, false); + !info->has_epilog, info->has_epilog); return true; } else if (nir->info.stage == MESA_SHADER_TESS_EVAL) { diff --git a/src/amd/vulkan/radv_aco_shader_info.h b/src/amd/vulkan/radv_aco_shader_info.h index 77d09fb6730..fc4081f94fa 100644 --- a/src/amd/vulkan/radv_aco_shader_info.h +++ b/src/amd/vulkan/radv_aco_shader_info.h @@ -67,6 +67,7 @@ radv_aco_convert_shader_info(struct aco_shader_info *aco_info, const struct radv aco_info->epilog_pc = radv_args->epilog_pc; aco_info->hw_stage = radv_select_hw_stage(radv, gfx_level); aco_info->tcs.tcs_offchip_layout = radv_args->tcs_offchip_layout; + aco_info->tcs.pass_tessfactors_by_reg = true; aco_info->next_stage_pc = radv_args->next_stage_pc; } @@ -93,7 +94,7 @@ static inline void radv_aco_convert_tcs_epilog_key(struct aco_tcs_epilog_info *aco_info, const struct radv_tcs_epilog_key *radv, const struct radv_shader_args *radv_args) { - aco_info->pass_tessfactors_by_reg = false; + aco_info->pass_tessfactors_by_reg = true; ASSIGN_FIELD(tcs_out_patch_fits_subgroup); ASSIGN_FIELD(primitive_mode); ASSIGN_FIELD(tes_reads_tessfactors);