diff options
author | Marek Olšák <[email protected]> | 2019-07-05 22:19:47 -0400 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2019-07-19 20:16:19 -0400 |
commit | 1b4354dab9f81c92ff83f98d8d65e3c9d304d421 (patch) | |
tree | b4f78c87d14d1d505a43aa1ab35cb0b387184c9f /src/gallium/drivers/radeonsi/si_shader.c | |
parent | 37db9d28650c21d2091a654b7c6a636927ef584d (diff) |
radeonsi/gfx10: clean up ESGS ring size computation
Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]>
Reviewed-by: Samuel Pitoiset <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_shader.c')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_shader.c | 27 |
1 files changed, 3 insertions, 24 deletions
diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 8f392d640fe..75f2c241d33 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -5234,36 +5234,15 @@ static bool si_shader_binary_open(struct si_screen *screen, struct ac_rtld_symbol lds_symbols[2]; unsigned num_lds_symbols = 0; - unsigned esgs_ring_size = 0; - if (sel && screen->info.chip_class >= GFX9 && - sel->type == PIPE_SHADER_GEOMETRY && !shader->is_gs_copy_shader) { - esgs_ring_size = shader->gs_info.esgs_ring_size; - } - - if (sel && shader->key.as_ngg) { - if (sel->type != PIPE_SHADER_GEOMETRY && sel->so.num_outputs) { - unsigned esgs_vertex_bytes = 4 * (4 * sel->info.num_outputs + 1); - esgs_ring_size = MAX2(esgs_ring_size, - shader->ngg.max_out_verts * esgs_vertex_bytes); - } - - /* GS stores Primitive IDs 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 (sel->type == PIPE_SHADER_VERTEX && - shader->key.mono.u.vs_export_prim_id) - esgs_ring_size = MAX2(esgs_ring_size, shader->ngg.max_out_verts * 4); - } - - if (esgs_ring_size) { + if (sel && screen->info.chip_class >= GFX9 && !shader->is_gs_copy_shader && + (sel->type == PIPE_SHADER_GEOMETRY || shader->key.as_ngg)) { /* We add this symbol even on LLVM <= 8 to ensure that * shader->config.lds_size is set correctly below. */ struct ac_rtld_symbol *sym = &lds_symbols[num_lds_symbols++]; sym->name = "esgs_ring"; - sym->size = esgs_ring_size; + sym->size = shader->gs_info.esgs_ring_size; sym->align = 64 * 1024; } |