diff options
| author | Markus Wick <markus+github@selfnet.de> | 2015-05-26 13:30:26 +0200 |
|---|---|---|
| committer | Markus Wick <markus+github@selfnet.de> | 2015-05-26 13:30:26 +0200 |
| commit | a6412fb41eb3aa2a1c4109e6fbd0c7e69030d717 (patch) | |
| tree | 75986c32396564ffb7b391fb86d403ac7ca4b465 /Source/Core/Common/MemoryUtil.cpp | |
| parent | 5d3a248811e3c836cc34d7af1a11de91f3132829 (diff) | |
| parent | 562b9d4a9f3710a65a2987a3c1a88e00778c6d67 (diff) | |
Merge pull request #2162 from degasus/prefetch_tex
CustomTexture: prefetch all available textures
Diffstat (limited to 'Source/Core/Common/MemoryUtil.cpp')
| -rw-r--r-- | Source/Core/Common/MemoryUtil.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Source/Core/Common/MemoryUtil.cpp b/Source/Core/Common/MemoryUtil.cpp index 9455212f01..510b258b09 100644 --- a/Source/Core/Common/MemoryUtil.cpp +++ b/Source/Core/Common/MemoryUtil.cpp @@ -19,6 +19,12 @@ #else #include <stdio.h> #include <sys/mman.h> +#include <sys/types.h> +#ifdef __APPLE__ +#include <sys/sysctl.h> +#else +#include <sys/sysinfo.h> +#endif #endif // Valgrind doesn't support MAP_32BIT. @@ -241,3 +247,26 @@ std::string MemUsage() return ""; #endif } + + +size_t MemPhysical() +{ +#ifdef _WIN32 + MEMORYSTATUSEX memInfo; + memInfo.dwLength = sizeof(MEMORYSTATUSEX); + GlobalMemoryStatusEx(&memInfo); + return memInfo.ullTotalPhys; +#elif defined(__APPLE__) + int mib[2]; + size_t physical_memory; + mib[0] = CTL_HW; + mib[1] = HW_MEMSIZE; + size_t length = sizeof(size_t); + sysctl(mib, 2, &physical_memory, &length, NULL, 0); + return physical_memory; +#else + struct sysinfo memInfo; + sysinfo (&memInfo); + return (size_t)memInfo.totalram * memInfo.mem_unit; +#endif +} |
