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;
