From 7705486ca507f76f84eb0898c20ebd705fc1102e Mon Sep 17 00:00:00 2001 From: Richard Huang Date: Fri, 23 May 2025 17:44:53 +0100 Subject: [PATCH] Destroy Vulkan pipeline objects properly Change-Id: I1933cfd2e95b556cb7f77c0b354cb37862d7ad94 --- .../graphics/vulkan-impl/vulkan-pipeline-impl.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/dali/internal/graphics/vulkan-impl/vulkan-pipeline-impl.cpp b/dali/internal/graphics/vulkan-impl/vulkan-pipeline-impl.cpp index 2b5c42528..6e2b1c934 100644 --- a/dali/internal/graphics/vulkan-impl/vulkan-pipeline-impl.cpp +++ b/dali/internal/graphics/vulkan-impl/vulkan-pipeline-impl.cpp @@ -314,7 +314,20 @@ uint32_t PipelineImpl::GetRefCount() const return 0; // mRefCount; } -PipelineImpl::~PipelineImpl() = default; +PipelineImpl::~PipelineImpl() +{ + auto vkDevice = mController.GetGraphicsDevice().GetLogicalDevice(); + for(auto& entry : mPipelineForDepthStateCache) + { + if(entry.pipeline) + { + vkDevice.destroyPipeline(entry.pipeline); + entry.pipeline = nullptr; + } + } + + mPipelineForDepthStateCache.clear(); +} void PipelineImpl::InitializePipeline() { -- 2.34.1