Mesa (master): radeonsi: don't keep compute shader IR after compilation

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Nov 6 04:30:36 UTC 2019


Module: Mesa
Branch: master
Commit: abb8011f9d584bc4198d7475d279a6136a9b0403
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=abb8011f9d584bc4198d7475d279a6136a9b0403

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Fri Nov  1 21:37:47 2019 -0400

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 <tarceri at itsqueeze.com>

---

 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);
 }




More information about the mesa-commit mailing list