radv/gfx10: fix unnecessary LDS overallocation for NGG GS
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 9 Sep 2019 08:43:44 +0000 (10:43 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 16 Sep 2019 10:08:22 +0000 (12:08 +0200)
Ported from RadeonSI.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_pipeline.c

index 8b523d884fc21b986d408f68a2793c3dfa3753fa..56d63e5f50f52b1d816b6b23ce3e4b96a2c2c3dd 100644 (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;