From: Samuel Pitoiset Date: Mon, 14 May 2018 14:04:36 +0000 (+0200) Subject: radv: reduce the number of parameters export by the GS copy shader X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=97b179570c092632589dba1bd0ed49ec3b4d5cd5;p=mesa.git radv: reduce the number of parameters export by the GS copy shader By using the geometry shader output usage mask. This improves all Vulkan demos that use a geometry shader (ie. geometryshader, deferredshadows, viewportarray). Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- diff --git a/src/amd/vulkan/radv_nir_to_llvm.c b/src/amd/vulkan/radv_nir_to_llvm.c index 2162ca58e08..b4af0f29415 100644 --- a/src/amd/vulkan/radv_nir_to_llvm.c +++ b/src/amd/vulkan/radv_nir_to_llvm.c @@ -2493,10 +2493,9 @@ handle_vs_outputs_post(struct radv_shader_context *ctx, output_usage_mask = ctx->shader_info->info.tes.output_usage_mask[i]; } else { - /* Enable all channels for the GS copy shader because - * we don't know the output usage mask currently. - */ - output_usage_mask = 0xf; + assert(ctx->is_gs_copy_shader); + output_usage_mask = + ctx->shader_info->info.gs.output_usage_mask[i]; } radv_export_param(ctx, param_count, values, output_usage_mask);