From abb8011f9d584bc4198d7475d279a6136a9b0403 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Fri, 1 Nov 2019 21:37:47 -0400 Subject: [PATCH] radeonsi: don't keep compute shader IR after compilation not needed. We also need to free TGSI in the destroy function for the case when an app is terminated and si_create_compute_state_async is never executed because of util_queue_drop_job. Reviewed-by: Timothy Arceri --- src/gallium/drivers/radeonsi/si_compute.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_compute.c b/src/gallium/drivers/radeonsi/si_compute.c index 56af2aedbb7..4cadf3e808d 100644 --- a/src/gallium/drivers/radeonsi/si_compute.c +++ b/src/gallium/drivers/radeonsi/si_compute.c @@ -208,8 +208,10 @@ static void si_create_compute_state_async(void *job, int thread_index) simple_mtx_unlock(&sscreen->shader_cache_mutex); } - if (program->ir_type == PIPE_SHADER_IR_TGSI) - FREE(sel->tokens); + FREE(sel->tokens); + sel->tokens = NULL; + ralloc_free(sel->nir); + sel->nir = NULL; } static void *si_create_compute_state( @@ -974,6 +976,7 @@ void si_destroy_compute(struct si_compute *program) FREE(program->global_buffers); si_shader_destroy(&program->shader); + FREE(program->sel.tokens); ralloc_free(program->sel.nir); FREE(program); } -- 2.30.2