Fix T63981: Factory default memory cache limit is 4096 MB (32bit builds)
very straightforward: initialize default to the same hard limit as the RNA properties. Annoying part is that it's not trivial to make RNA to use same BLI functions, so leaving that behind for now.
This commit is contained in:
parent
34d67601b7
commit
fccb42c41f
Notes:
blender-bot
2023-02-14 02:52:38 +01:00
Referenced by issue #63981, Factory default memory cache limit is 4096 MB (32bit builds)
|
@ -41,6 +41,10 @@ char *BLI_cpu_brand_string(void);
|
|||
*/
|
||||
void BLI_hostname_get(char *buffer, size_t bufsize);
|
||||
|
||||
/* Get maximum addressable memory in megabytes. */
|
||||
size_t BLI_system_memory_max_in_megabytes(void);
|
||||
int BLI_system_memory_max_in_megabytes_int(void);
|
||||
|
||||
/* getpid */
|
||||
#ifdef WIN32
|
||||
# define BLI_SYSTEM_PID_H <process.h>
|
||||
|
|
|
@ -18,10 +18,12 @@
|
|||
* \ingroup bli
|
||||
*/
|
||||
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "BLI_utildefines.h"
|
||||
#include "BLI_math_base.h"
|
||||
#include "BLI_system.h"
|
||||
#include "BLI_string.h"
|
||||
|
||||
|
@ -189,3 +191,20 @@ void BLI_hostname_get(char *buffer, size_t bufsize)
|
|||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
size_t BLI_system_memory_max_in_megabytes(void)
|
||||
{
|
||||
/* Maximum addressable bytes on this platform.
|
||||
*
|
||||
* NOTE: Due to the shift arithmetic this is a half of the memory. */
|
||||
const size_t limit_bytes_half = (((size_t)1) << ((sizeof(size_t) * 8) - 1));
|
||||
/* Convert it to megabytes and return. */
|
||||
return (limit_bytes_half >> 20) * 2;
|
||||
}
|
||||
|
||||
int BLI_system_memory_max_in_megabytes_int(void)
|
||||
{
|
||||
const size_t limit_megabytes = BLI_system_memory_max_in_megabytes();
|
||||
/* NOTE: The result will fit into integer. */
|
||||
return (int)min_zz(limit_megabytes, (size_t)INT_MAX);
|
||||
}
|
||||
|
|
|
@ -96,7 +96,7 @@ void BLO_update_defaults_userpref_blend(void)
|
|||
/* Only enable tooltips translation by default,
|
||||
* without actually enabling translation itself, for now. */
|
||||
U.transopts = USER_TR_TOOLTIPS;
|
||||
U.memcachelimit = 4096;
|
||||
U.memcachelimit = min_ii(BLI_system_memory_max_in_megabytes_int() / 2, 4096);
|
||||
|
||||
/* Auto perspective. */
|
||||
U.uiflag |= USER_AUTOPERSP;
|
||||
|
|
Loading…
Reference in New Issue