Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2019-05-17 16:02:12 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2019-05-17 16:02:12 +0300
commitfccb42c41f89d64bf0c7ebd75d315adba4a9a927 (patch)
tree3f02e6d2daca4d3b96248b04d6c955021978073c /source/blender/blenlib/intern/system.c
parent34d67601b716046cf15f3e808a92bc91d0af804f (diff)
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.
Diffstat (limited to 'source/blender/blenlib/intern/system.c')
-rw-r--r--source/blender/blenlib/intern/system.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/source/blender/blenlib/intern/system.c b/source/blender/blenlib/intern/system.c
index d23b45a3937..3348912f02a 100644
--- a/source/blender/blenlib/intern/system.c
+++ b/source/blender/blenlib/intern/system.c
@@ -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);
+}