summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Gray <jsg@jsg.id.au>2019-12-06 01:07:56 +1100
committerEric Engestrom <eric@engestrom.ch>2020-09-02 21:50:49 +0200
commit730e3d51b3ee33c2e798c91c6729dac89f9da318 (patch)
treec622adb6c514fef3e31cd2905a942558f73d3a87
parentb28d1178aa353f8f13c3466af64d85d5bbf1b477 (diff)
anv: use os_get_available_system_memory()
Replace local get_available_system_memory() function with os_get_available_system_memory(). Fixes: b80930a6fea ("anv: add support for VK_EXT_memory_budget") Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6517> (cherry picked from commit 5b1ed09ff023ff98fed0c78a5ea609821cb92a8c)
-rw-r--r--.pick_status.json2
-rw-r--r--src/intel/vulkan/anv_device.c32
2 files changed, 7 insertions, 27 deletions
diff --git a/.pick_status.json b/.pick_status.json
index a6818204607..d13bb4872a7 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -112,7 +112,7 @@
"description": "anv: use os_get_available_system_memory()",
"nominated": true,
"nomination_type": 1,
- "resolution": 0,
+ "resolution": 1,
"master_sha": null,
"because_sha": "b80930a6fea075d2ef283ceac5a2a64e65fd7bc4"
},
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
index 5785c790b43..8965c168aa0 100644
--- a/src/intel/vulkan/anv_device.c
+++ b/src/intel/vulkan/anv_device.c
@@ -304,29 +304,6 @@ anv_physical_device_free_disk_cache(struct anv_physical_device *device)
#endif
}
-static uint64_t
-get_available_system_memory()
-{
- char *meminfo = os_read_file("/proc/meminfo", NULL);
- if (!meminfo)
- return 0;
-
- char *str = strstr(meminfo, "MemAvailable:");
- if (!str) {
- free(meminfo);
- return 0;
- }
-
- uint64_t kb_mem_available;
- if (sscanf(str, "MemAvailable: %" PRIx64, &kb_mem_available) == 1) {
- free(meminfo);
- return kb_mem_available << 10;
- }
-
- free(meminfo);
- return 0;
-}
-
static VkResult
anv_physical_device_try_create(struct anv_instance *instance,
drmDevicePtr drm_device,
@@ -471,7 +448,8 @@ anv_physical_device_try_create(struct anv_instance *instance,
device->has_implicit_ccs = device->info.has_aux_map;
- device->has_mem_available = get_available_system_memory() != 0;
+ uint64_t avail_mem;
+ device->has_mem_available = os_get_available_system_memory(&avail_mem);
device->always_flush_cache =
driQueryOptionb(&instance->dri_options, "always_flush_cache");
@@ -2126,8 +2104,10 @@ anv_get_memory_budget(VkPhysicalDevice physicalDevice,
VkPhysicalDeviceMemoryBudgetPropertiesEXT *memoryBudget)
{
ANV_FROM_HANDLE(anv_physical_device, device, physicalDevice);
- uint64_t sys_available = get_available_system_memory();
- assert(sys_available > 0);
+ uint64_t sys_available;
+ ASSERTED bool has_available_memory =
+ os_get_available_system_memory(&sys_available);
+ assert(has_available_memory);
VkDeviceSize total_heaps_size = 0;
for (size_t i = 0; i < device->memory.heap_count; i++)