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

Author: Faith Ekstrand <[email protected]>
Date:   Sat Oct 14 00:23:12 2023 -0500

nvk: Free NAK shaders

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26181>

---

 src/nouveau/vulkan/nvk_shader.c | 6 +++++-
 src/nouveau/vulkan/nvk_shader.h | 2 ++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/nouveau/vulkan/nvk_shader.c b/src/nouveau/vulkan/nvk_shader.c
index db9b6934be3..e1d8ea7ea7c 100644
--- a/src/nouveau/vulkan/nvk_shader.c
+++ b/src/nouveau/vulkan/nvk_shader.c
@@ -1304,7 +1304,7 @@ nvk_compile_nir_with_nak(struct nvk_physical_device *pdev,
    STATIC_ASSERT(sizeof(shader->hdr) == sizeof(bin->info.hdr));
    memcpy(shader->hdr, bin->info.hdr, sizeof(bin->info.hdr));
 
-   /* TODO: Free the nak_shader_bin */
+   shader->nak = bin;
    shader->code_ptr = (void *)bin->code;
    shader->code_size = bin->code_size;
 
@@ -1472,5 +1472,9 @@ nvk_shader_finish(struct nvk_device *dev, struct 
nvk_shader *shader)
                     shader->upload_addr,
                     shader->upload_size);
    }
+
+   if (shader->nak)
+      nak_shader_bin_destroy(shader->nak);
+
    free(shader->xfb);
 }
diff --git a/src/nouveau/vulkan/nvk_shader.h b/src/nouveau/vulkan/nvk_shader.h
index 5e94bb996d8..2ee8265c3ad 100644
--- a/src/nouveau/vulkan/nvk_shader.h
+++ b/src/nouveau/vulkan/nvk_shader.h
@@ -11,6 +11,7 @@
 #include "nir.h"
 #include "nouveau_bo.h"
 
+struct nak_shader_bin;
 struct nvk_device;
 struct nvk_physical_device;
 struct nvk_pipeline_compilation_ctx;
@@ -39,6 +40,7 @@ struct nvk_transform_feedback_state {
 struct nvk_shader {
    gl_shader_stage stage;
 
+   struct nak_shader_bin *nak;
    uint8_t *code_ptr;
    uint32_t code_size;
 

Reply via email to