From 80cefee0f729d71cb57c940d416709a6938df4b9 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 29 Sep 2020 19:13:23 +0200 Subject: [PATCH] radv/llvm: gather TCS outputs from the output variables Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen Part-of: --- src/amd/vulkan/radv_shader_info.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/amd/vulkan/radv_shader_info.c b/src/amd/vulkan/radv_shader_info.c index 807c6b4c87b..5e302e5dcca 100644 --- a/src/amd/vulkan/radv_shader_info.c +++ b/src/amd/vulkan/radv_shader_info.c @@ -647,6 +647,21 @@ gather_info_output_decl(const nir_shader *nir, const nir_variable *var, if (!key->vs_common_out.as_es) vs_info = &info->tes.outinfo; break; + case MESA_SHADER_TESS_CTRL: { + unsigned param = shader_io_get_unique_index(var->data.location); + const struct glsl_type *type = var->type; + + if (!var->data.patch) + type = glsl_get_array_element(var->type); + + unsigned slots = + var->data.compact ? DIV_ROUND_UP(var->data.location_frac + glsl_get_length(type), 4) + : glsl_count_attribute_slots(type, false); + + mark_tess_output(info, var->data.patch, param, slots); + break; + } + default: break; }