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

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

nvk: Add an nvk_shader_finish() helper

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

---

 src/nouveau/vulkan/nvk_pipeline.c | 10 ++--------
 src/nouveau/vulkan/nvk_shader.c   | 11 +++++++++++
 src/nouveau/vulkan/nvk_shader.h   |  3 +++
 3 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/src/nouveau/vulkan/nvk_pipeline.c 
b/src/nouveau/vulkan/nvk_pipeline.c
index 2b5815ebb4f..36a71c4fb56 100644
--- a/src/nouveau/vulkan/nvk_pipeline.c
+++ b/src/nouveau/vulkan/nvk_pipeline.c
@@ -32,14 +32,8 @@ nvk_pipeline_free(struct nvk_device *dev,
                   struct nvk_pipeline *pipeline,
                   const VkAllocationCallbacks *pAllocator)
 {
-   for (uint32_t s = 0; s < ARRAY_SIZE(pipeline->shaders); s++) {
-      if (pipeline->shaders[s].upload_size > 0) {
-         nvk_heap_free(dev, &dev->shader_heap,
-                       pipeline->shaders[s].upload_addr,
-                       pipeline->shaders[s].upload_size);
-      }
-      free(pipeline->shaders[s].xfb);
-   }
+   for (uint32_t s = 0; s < ARRAY_SIZE(pipeline->shaders); s++)
+      nvk_shader_finish(dev, &pipeline->shaders[s]);
 
    vk_object_free(&dev->vk, pAllocator, pipeline);
 }
diff --git a/src/nouveau/vulkan/nvk_shader.c b/src/nouveau/vulkan/nvk_shader.c
index ee7df9b9af1..59c550dbd6e 100644
--- a/src/nouveau/vulkan/nvk_shader.c
+++ b/src/nouveau/vulkan/nvk_shader.c
@@ -1306,3 +1306,14 @@ nvk_shader_upload(struct nvk_device *dev, struct 
nvk_shader *shader)
 
    return result;
 }
+
+void
+nvk_shader_finish(struct nvk_device *dev, struct nvk_shader *shader)
+{
+   if (shader->upload_size > 0) {
+      nvk_heap_free(dev, &dev->shader_heap,
+                    shader->upload_addr,
+                    shader->upload_size);
+   }
+   free(shader->xfb);
+}
diff --git a/src/nouveau/vulkan/nvk_shader.h b/src/nouveau/vulkan/nvk_shader.h
index 8c4c58d4361..14b2fa4813b 100644
--- a/src/nouveau/vulkan/nvk_shader.h
+++ b/src/nouveau/vulkan/nvk_shader.h
@@ -146,4 +146,7 @@ nvk_compile_nir(struct nvk_physical_device *dev, nir_shader 
*nir,
 
 VkResult
 nvk_shader_upload(struct nvk_device *dev, struct nvk_shader *shader);
+
+void
+nvk_shader_finish(struct nvk_device *dev, struct nvk_shader *shader);
 #endif

Reply via email to