Revert "[Tizen] Reset to "Reset string shader data cache~""
authorEunki, Hong <eunkiki.hong@samsung.com>
Wed, 16 Oct 2024 06:59:13 +0000 (15:59 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Wed, 16 Oct 2024 06:59:13 +0000 (15:59 +0900)
This reverts commit 0dba701b5e664841d78b3e5119283df93a8891ed.

dali/internal/event/effects/shader-factory.cpp
dali/internal/event/effects/shader-factory.h

index f3f54fd7ef86a26f16b4585d66d031b319abc3e8..678ae49710d1d5d89b682dffaad9bb11f2664bfa 100644 (file)
@@ -33,8 +33,6 @@ namespace
 {
 const char* VERSION_SEPARATOR = "-";
 const char* SHADER_SUFFIX     = ".dali-bin";
-
-constexpr uint32_t MAXIMUM_STRING_SHADER_DATA_CACHE_CLEAN_THRESHOLD = 128u;
 } // namespace
 
 namespace Dali
@@ -190,11 +188,6 @@ void ShaderFactory::MemoryCacheInsert(ShaderData& shaderData, const bool isBinar
   }
   else
   {
-    if(DALI_UNLIKELY(mTotalStringCachedShadersCount >= MAXIMUM_STRING_SHADER_DATA_CACHE_CLEAN_THRESHOLD))
-    {
-      // Reset string cache, to avoid memory leak problem.
-      ResetStringShaderData();
-    }
     auto& cacheList = mShaderStringCache[shaderHash]; ///< Get or create a new cache list.
 
     // Ignore shaderdata with string if it already exists:
@@ -209,8 +202,6 @@ void ShaderFactory::MemoryCacheInsert(ShaderData& shaderData, const bool isBinar
     }
     shaderData.Reference();
     cacheList.PushBack(&shaderData);
-
-    ++mTotalStringCachedShadersCount;
     DALI_LOG_INFO(Debug::Filter::gShader, Debug::General, "CACHED NON-BINARY SHADER FOR HASH: %u, HINT: %d, TAG: %u\n", shaderHash, static_cast<int>(shaderData.GetHints()), shaderData.GetRenderPassTag());
   }
 }
@@ -231,8 +222,6 @@ void ShaderFactory::RemoveStringShaderData(ShaderData& shaderData)
         // Reduce reference before erase
         (*iter)->Unreference();
         cacheList.Erase(iter);
-
-        --mTotalStringCachedShadersCount;
         break;
       }
     }
@@ -243,25 +232,6 @@ void ShaderFactory::RemoveStringShaderData(ShaderData& shaderData)
   }
 }
 
-void ShaderFactory::ResetStringShaderData()
-{
-  DALI_LOG_RELEASE_INFO("Trigger StringShaderData GC. shader : [%u]\n", mTotalStringCachedShadersCount);
-  for(auto&& iter : mShaderStringCache)
-  {
-    auto& cacheList = iter.second;
-    for(auto&& shaderData : cacheList)
-    {
-      shaderData->Unreference();
-    }
-  }
-
-  // Reset cache after unreference.
-  mShaderStringCache.clear();
-
-  mTotalStringCachedShadersCount = 0u;
-  DALI_LOG_RELEASE_INFO("StringShaderData GC done\n");
-}
-
 } // namespace Internal
 
 } // namespace Dali
index afadccd8fcb9cbb84a1253f9f904c91e326e9000..0662c31c78e5ce3b1ff4dad9930259bc70f082c2 100644 (file)
@@ -90,11 +90,6 @@ private:
    */
   void RemoveStringShaderData(Internal::ShaderData& shaderData);
 
-  /**
-   * @brief Remove all the string shader data from the cache.
-   */
-  void ResetStringShaderData();
-
   // Undefined
   ShaderFactory(const ShaderFactory&) = delete;
 
@@ -107,8 +102,6 @@ private:
   ShaderCacheContainer mShaderBinaryCache; ///< Cache of pre-compiled shaders.
   ShaderCacheContainer mShaderStringCache; ///< Cache of non-pre-compiled shaders. (TODO : Could we clean up this cache by user management?)
 
-  uint32_t mTotalStringCachedShadersCount{0u}; ///< Total number of cached shaders that are not pre-compiled.
-
 }; // class ShaderFactory
 
 inline MessageBase* ShaderCompiledMessage(ShaderSaver& factory, Internal::ShaderDataPtr shaderData)