diff options
| author | Callum Prentice <callum@gmail.com> | 2020-10-27 13:53:17 -0700 | 
|---|---|---|
| committer | Callum Prentice <callum@gmail.com> | 2020-10-27 13:53:17 -0700 | 
| commit | 391ada1150a861e899dcde8558e9efd4c5efc981 (patch) | |
| tree | 78e958a9f7e389f9c375bd4fbaf6456eba4973d7 | |
| parent | 581cb0a0e9c3191295e8ff5bfa836b40fd85f0b8 (diff) | |
Fix for meta issue: SL-14211 Determine optimum cache size for VFS replacement cache
| -rw-r--r-- | indra/llfilesystem/lldiskcache.h | 4 | ||||
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 8 | ||||
| -rw-r--r-- | indra/newview/llappviewer.cpp | 10 | 
3 files changed, 14 insertions, 8 deletions
| diff --git a/indra/llfilesystem/lldiskcache.h b/indra/llfilesystem/lldiskcache.h index b25eac8538..997884da31 100644 --- a/indra/llfilesystem/lldiskcache.h +++ b/indra/llfilesystem/lldiskcache.h @@ -83,8 +83,8 @@ class LLDiskCache :                       */                      const std::string cache_dir,                      /** -                     * The maximum size of the cache in bytes - Defined by -                     * the setting at 'DiskCacheMaxSizeMB' (* 1024 * 1024) +                     * The maximum size of the cache in bytes - Based on the +                     * setting at 'CacheSize' and 'DiskCachePercentOfTotal'                       */                      const int max_size_bytes,                      /** diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index fc1437148a..142a3098ec 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -1362,16 +1362,16 @@        <key>Value</key>        <integer>0</integer>      </map> -    <key>DiskCacheMaxSizeMB</key> +    <key>DiskCachePercentOfTotal</key>      <map>        <key>Comment</key> -      <string>The maximum number of MB to use for the new disk cache</string> +      <string>The percent of total cache size (defined by CacheSize) to use for the disk cache</string>        <key>Persist</key>        <integer>1</integer>        <key>Type</key> -      <string>U32</string> +      <string>F32</string>        <key>Value</key> -      <integer>50</integer> +      <integer>20.0</integer>      </map>      <key>DiskCacheDirName</key>      <map> diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 9e50860064..20ca432279 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -4063,10 +4063,16 @@ bool LLAppViewer::initCache()  	// initialize the new disk cache using saved settings  	const std::string cache_dir_name = gSavedSettings.getString("DiskCacheDirName"); -	const unsigned int cache_max_bytes = gSavedSettings.getU32("DiskCacheMaxSizeMB") * 1024 * 1024; + +    // note that the maximum size of this cache is defined as a percentage of the  +    // total cache size - the 'CacheSize' pref - for all caches.  +    const unsigned int cache_total_size_mb = gSavedSettings.getU32("CacheSize"); +    const double disk_cache_percent = gSavedSettings.getF32("DiskCachePercentOfTotal"); +    const unsigned int disk_cache_mb = cache_total_size_mb * disk_cache_percent / 100; +    const unsigned int disk_cache_bytes = disk_cache_mb * 1024 * 1024;  	const bool enable_cache_debug_info = gSavedSettings.getBOOL("EnableDiskCacheDebugInfo");  	const std::string cache_dir = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, cache_dir_name); -	LLDiskCache::initParamSingleton(cache_dir, cache_max_bytes, enable_cache_debug_info); +	LLDiskCache::initParamSingleton(cache_dir, disk_cache_bytes, enable_cache_debug_info);  	bool texture_cache_mismatch = false;  	if (gSavedSettings.getS32("LocalCacheVersion") != LLAppViewer::getTextureCacheVersion()) | 
