freedreno/ir3: Add ir3_screen_fini()
authorRob Clark <robdclark@chromium.org>
Sat, 30 Jan 2021 19:12:36 +0000 (11:12 -0800)
committerMarge Bot <eric+marge@anholt.net>
Tue, 16 Feb 2021 23:43:43 +0000 (23:43 +0000)
Move ir3_compiler_destroy() into ir3_screen_fini().  This gives us a
good place to cleanup an sync compile queue.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8795>

src/gallium/drivers/freedreno/freedreno_screen.c
src/gallium/drivers/freedreno/ir3/ir3_gallium.c
src/gallium/drivers/freedreno/ir3/ir3_gallium.h

index 68fef4d..fb44299 100644 (file)
@@ -61,7 +61,7 @@
 #include "common/freedreno_uuid.h"
 
 #include "ir3/ir3_nir.h"
-#include "ir3/ir3_compiler.h"
+#include "ir3/ir3_gallium.h"
 #include "a2xx/ir2.h"
 
 static const struct debug_named_value fd_debug_options[] = {
@@ -165,7 +165,7 @@ fd_screen_destroy(struct pipe_screen *pscreen)
        u_transfer_helper_destroy(pscreen->transfer_helper);
 
        if (screen->compiler)
-               ir3_compiler_destroy(screen->compiler);
+               ir3_screen_fini(pscreen);
 
        ralloc_free(screen->live_batches);
 
index 684c1a6..7b04153 100644 (file)
@@ -399,3 +399,12 @@ ir3_screen_init(struct pipe_screen *pscreen)
 
        pscreen->finalize_nir = ir3_screen_finalize_nir;
 }
+
+void
+ir3_screen_fini(struct pipe_screen *pscreen)
+{
+       struct fd_screen *screen = fd_screen(pscreen);
+
+       ir3_compiler_destroy(screen->compiler);
+       screen->compiler = NULL;
+}
index 3fef624..d52c84f 100644 (file)
@@ -56,6 +56,7 @@ struct shader_info * ir3_get_shader_info(struct ir3_shader_state *hwcso);
 
 void ir3_prog_init(struct pipe_context *pctx);
 void ir3_screen_init(struct pipe_screen *pscreen);
+void ir3_screen_fini(struct pipe_screen *pscreen);
 
 /**
  * A helper to determine if a fs input 'i' is point/sprite coord, given