aco: Set config->lds_size when TES or VS is running on HW ESGS.
authorTimur Kristóf <timur.kristof@gmail.com>
Thu, 23 Apr 2020 12:02:47 +0000 (14:02 +0200)
committerMarge Bot <eric+marge@anholt.net>
Wed, 29 Apr 2020 11:51:04 +0000 (11:51 +0000)
This doesn't fix anything, just reports the LDS size used by
merged ESGS shaders, such as vertex_geometry_gs and
tess_eval_geometry_gs.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4388>

src/amd/compiler/aco_instruction_selection_setup.cpp

index bf4b34c6e3e9dd5ac05d4e9b3efd68a34d42c1a9..dee86585c8edea4c30e07ff754ddb4401771dc3e 100644 (file)
@@ -835,6 +835,7 @@ void setup_gs_variables(isel_context *ctx, nir_shader *nir)
       nir_foreach_variable(variable, &nir->inputs) {
          variable->data.driver_location = util_bitcount64(ctx->input_masks[nir->info.stage] & ((1ull << variable->data.location) - 1ull)) * 4;
       }
+      ctx->program->config->lds_size = ctx->program->info->gs_ring_info.lds_size; /* Already in units of the alloc granularity */
    } else if (ctx->stage == geometry_gs) {
       //TODO: make this more compact
       nir_foreach_variable(variable, &nir->inputs) {