Remove old pipeline caches
[platform/core/uifw/dali-core.git] / dali / internal / render / renderers / render-renderer.cpp
index c6e4b24..486eb2f 100644 (file)
@@ -174,7 +174,7 @@ MemoryPoolObjectAllocator<Renderer>& GetRenderRendererMemoryPool()
   static MemoryPoolObjectAllocator<Renderer> gRenderRendererMemoryPool;
   return gRenderRendererMemoryPool;
 }
-}
+} // namespace
 
 void Renderer::PrepareCommandBuffer()
 {
@@ -245,7 +245,11 @@ void Renderer::Initialize(Graphics::Controller& graphicsController, ProgramCache
   mPipelineCache        = &pipelineCache;
 }
 
-Renderer::~Renderer() = default;
+Renderer::~Renderer()
+{
+  // Reset old pipeline
+  mPipelineCache->ResetPipeline(mPipeline);
+}
 
 void Renderer::operator delete(void* ptr)
 {
@@ -967,9 +971,14 @@ Graphics::Pipeline& Renderer::PrepareGraphicsPipeline(
 
   queryInfo.GenerateHash();
 
+  // Reset old pipeline
+  mPipelineCache->ResetPipeline(mPipeline);
+
   // Find or generate new pipeline.
   auto pipelineResult = mPipelineCache->GetPipeline(queryInfo, true);
 
+  mPipeline = pipelineResult.level2;
+
   // should be never null?
   return *pipelineResult.pipeline;
 }