From 580a8a8b1e4d0bfab09c0d0af9110f405a3ef262 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 1 Jun 2023 09:18:50 -0400 Subject: [PATCH] lavapipe: fix memory budget reporting I put this on the wrong struct Fixes: 1c42056ee12 ("lavapipe: EXT_memory_budget") Reviewed-by: Dave Airlie Part-of: --- src/gallium/frontends/lavapipe/lvp_device.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/gallium/frontends/lavapipe/lvp_device.c b/src/gallium/frontends/lavapipe/lvp_device.c index 91987910695..eaf94918b9a 100644 --- a/src/gallium/frontends/lavapipe/lvp_device.c +++ b/src/gallium/frontends/lavapipe/lvp_device.c @@ -1200,13 +1200,6 @@ VKAPI_ATTR void VKAPI_CALL lvp_GetPhysicalDeviceProperties2( props->shaderBinaryVersion = 1; break; } - case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: { - VkPhysicalDeviceMemoryBudgetPropertiesEXT *props = (VkPhysicalDeviceMemoryBudgetPropertiesEXT*)ext; - os_get_total_physical_memory(&props->heapBudget[0]); - os_get_available_system_memory(&props->heapUsage[0]); - props->heapUsage[0] = props->heapBudget[0] - props->heapUsage[0]; - break; - } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: { VkPhysicalDeviceRobustness2PropertiesEXT *props = (VkPhysicalDeviceRobustness2PropertiesEXT *)ext; @@ -1315,6 +1308,14 @@ VKAPI_ATTR void VKAPI_CALL lvp_GetPhysicalDeviceMemoryProperties2( { lvp_GetPhysicalDeviceMemoryProperties(physicalDevice, &pMemoryProperties->memoryProperties); + VkPhysicalDeviceMemoryBudgetPropertiesEXT *props = vk_find_struct(pMemoryProperties, PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT); + if (props) { + props->heapBudget[0] = pMemoryProperties->memoryProperties.memoryHeaps[0].size; + os_get_available_system_memory(&props->heapUsage[0]); + props->heapUsage[0] = props->heapBudget[0] - props->heapUsage[0]; + memset(&props->heapBudget[1], 0, sizeof(props->heapBudget[0]) * (VK_MAX_MEMORY_HEAPS - 1)); + memset(&props->heapUsage[1], 0, sizeof(props->heapUsage[0]) * (VK_MAX_MEMORY_HEAPS - 1)); + } } VKAPI_ATTR VkResult VKAPI_CALL