mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 11:18:08 +02:00
anv: use os_get_available_system_memory()
Replace local get_available_system_memory() function with os_get_available_system_memory(). Fixes:b80930a6fe("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 commit5b1ed09ff0)
This commit is contained in:
parent
61121108ad
commit
b69312343b
2 changed files with 7 additions and 27 deletions
|
|
@ -3343,7 +3343,7 @@
|
|||
"description": "anv: use os_get_available_system_memory()",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"master_sha": null,
|
||||
"because_sha": "b80930a6fea075d2ef283ceac5a2a64e65fd7bc4"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -307,29 +307,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,
|
||||
|
|
@ -483,7 +460,8 @@ anv_physical_device_try_create(struct anv_instance *instance,
|
|||
device->has_reg_timestamp = anv_gem_reg_read(fd, TIMESTAMP | I915_REG_READ_8B_WA,
|
||||
&u64_ignore) == 0;
|
||||
|
||||
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");
|
||||
|
|
@ -2228,8 +2206,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++)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue