Module: Mesa
Branch: main
Commit: 9d73bfc9cdd127a52d07bf8b60e66c5a9495890e
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9d73bfc9cdd127a52d07bf8b60e66c5a9495890e

Author: Caio Oliveira <caio.olive...@intel.com>
Date:   Thu Oct 26 15:10:36 2023 -0700

anv: Fix leak when compiling internal kernels

Cc: mesa-stable
Reviewed-by: Paulo Zanoni <paulo.r.zan...@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwer...@intel.com>
Tested-by: Paulo Zanoni <paulo.r.zan...@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25928>

---

 src/intel/vulkan/anv_internal_kernels.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/intel/vulkan/anv_internal_kernels.c 
b/src/intel/vulkan/anv_internal_kernels.c
index 184d757fb36..077d7ebe177 100644
--- a/src/intel/vulkan/anv_internal_kernels.c
+++ b/src/intel/vulkan/anv_internal_kernels.c
@@ -245,6 +245,8 @@ compile_upload_spirv(struct anv_device *device,
 
    brw_nir_analyze_ubo_ranges(compiler, nir, NULL, prog_data.base.ubo_ranges);
 
+   void *temp_ctx = ralloc_context(NULL);
+
    const unsigned *program;
    if (stage == MESA_SHADER_FRAGMENT) {
       struct brw_compile_stats stats[3];
@@ -254,6 +256,7 @@ compile_upload_spirv(struct anv_device *device,
             .log_data = device,
             .debug_flag = DEBUG_WM,
             .stats = stats,
+            .mem_ctx = temp_ctx,
          },
          .key = &key.wm,
          .prog_data = &prog_data.wm,
@@ -287,6 +290,7 @@ compile_upload_spirv(struct anv_device *device,
             .stats = &stats,
             .log_data = device,
             .debug_flag = DEBUG_CS,
+            .mem_ctx = temp_ctx,
          },
          .key = &key.cs,
          .prog_data = &prog_data.cs,
@@ -314,6 +318,7 @@ compile_upload_spirv(struct anv_device *device,
                                &push_desc_info,
                                0 /* dynamic_push_values */);
 
+   ralloc_free(temp_ctx);
    ralloc_free(nir);
 
    return kernel;

Reply via email to