radv/gfx10: fix the ESGS ring size symbol

Random hangs no longer happen, I'm actually not sure if they were
related to this.

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-18 09:58:54 +02:00
parent 34be977f80
commit a2a68d551c

View File

@@ -916,27 +916,9 @@ radv_shader_variant_create(struct radv_device *device,
/* We add this symbol even on LLVM <= 8 to ensure that
* shader->config.lds_size is set correctly below.
*/
/* TODO: For some reasons, using the computed ESGS ring
* size randomly hangs with CTS. Just use the maximum
* possible LDS size for now.
*/
unsigned ngg_scratch_size = 8 * 4;
if (binary->info.so.num_outputs) {
/* Memory layout of NGG streamout scratch:
* [0-3]: number of generated primitives
* [4-7]: number of emitted primitives
* [8-11]: streamout offsets
* [12:19]: primitive offsets for stream 0
* [20:27]: primitive offsets for stream 1
* [28:35]: primitive offsets for stream 2
* [36:43]: primitive offsets for stream 3
*/
ngg_scratch_size = 44 * 4;
}
struct ac_rtld_symbol *sym = &lds_symbols[num_lds_symbols++];
sym->name = "esgs_ring";
sym->size = (32 * 1024) - (binary->info.ngg_info.ngg_emit_size * 4) - ngg_scratch_size;
sym->size = binary->info.ngg_info.esgs_ring_size;
sym->align = 64 * 1024;
}