radv/gfx10: compute the LDS size for exporting PrimID for VS

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
Samuel Pitoiset
2019-08-29 09:18:54 +02:00
parent e64091ebd4
commit b650ecfe31

View File

@@ -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;