From f7364c9fe0ad2e8bae94045b4ffef13a12f49faa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sat, 14 Nov 2020 17:45:31 -0500 Subject: [PATCH] radeonsi: don't allocate LDS for TCS inputs if it's not used Acked-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/drivers/radeonsi/si_state_draw.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c index 8a72921b87a..74cfd6ac4d6 100644 --- a/src/gallium/drivers/radeonsi/si_state_draw.c +++ b/src/gallium/drivers/radeonsi/si_state_draw.c @@ -131,7 +131,12 @@ static void si_emit_derived_tess_state(struct si_context *sctx, const struct pip input_vertex_size = ls->lshs_vertex_stride; output_vertex_size = num_tcs_outputs * 16; - input_patch_size = num_tcs_input_cp * input_vertex_size; + /* Allocate LDS for TCS inputs only if it's used. */ + if (!ls_current->key.opt.same_patch_vertices || + tcs->info.base.inputs_read & ~tcs->tcs_vgpr_only_inputs) + input_patch_size = num_tcs_input_cp * input_vertex_size; + else + input_patch_size = 0; pervertex_output_patch_size = num_tcs_output_cp * output_vertex_size; output_patch_size = pervertex_output_patch_size + num_tcs_patch_outputs * 16;