radv/gfx10: fix unnecessary LDS overallocation for NGG GS

Ported from RadeonSI.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
Samuel Pitoiset
2019-09-09 10:43:44 +02:00
parent c415c58b4a
commit d81100d307

View File

@@ -1678,17 +1678,11 @@ gfx10_get_ngg_info(const VkGraphicsPipelineCreateInfo *pCreateInfo,
/* We can't allow using the whole LDS, because GS waves compete with
* other shader stages for LDS space.
*
* Streamout can increase the ESGS buffer size later on, so be more
* conservative with streamout and use 4K dwords. This may be suboptimal.
*
* Otherwise, use the limit of 7K dwords. The reason is that we need
* to leave some headroom for the max_esverts increase at the end.
*
* TODO: We should really take the shader's internal LDS use into
* account. The linker will fail if the size is greater than
* 8K dwords.
*/
const unsigned max_lds_size = (0 /*gs_info->info.so.num_outputs*/ ? 4 : 7) * 1024 - 128;
const unsigned max_lds_size = 8 * 1024 - 768;
const unsigned target_lds_size = max_lds_size;
unsigned esvert_lds_size = 0;
unsigned gsprim_lds_size = 0;