From b650ecfe31215c213876771134bf6685b7765601 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Thu, 29 Aug 2019 09:18:54 +0200 Subject: [PATCH] radv/gfx10: compute the LDS size for exporting PrimID for VS Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- src/amd/vulkan/radv_pipeline.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index ecd4edf6500..3e448db1fd5 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -1751,6 +1751,15 @@ calculate_ngg_info(const VkGraphicsPipelineCreateInfo *pCreateInfo, if (es_info->info.so.num_outputs) esvert_lds_size = 4 * es_info->info.so.num_outputs + 1; */ + + /* LDS size for passing data from GS to ES. + * GS stores Primitive IDs (one DWORD) into LDS at the address + * corresponding to the ES thread of the provoking vertex. All + * ES threads load and export PrimitiveID for their thread. + */ + if (!radv_pipeline_has_tess(pipeline) && + pipeline->shaders[MESA_SHADER_VERTEX]->info.vs.export_prim_id) + esvert_lds_size = MAX2(esvert_lds_size, 1); } unsigned max_gsprims = max_gsprims_base; -- 2.30.2