@@ -4336,7 +4336,7 @@ static void ggml_vk_instance_init() {
43364336
43374337 bool membudget_supported = false;
43384338 for (const auto & ext : extensionprops) {
4339- if (std::string( ext.extensionName.data()) == VK_EXT_MEMORY_BUDGET_EXTENSION_NAME ) {
4339+ if (strcmp(VK_EXT_MEMORY_BUDGET_EXTENSION_NAME, ext.extensionName) == 0 ) {
43404340 membudget_supported = true;
43414341 break;
43424342 }
@@ -11457,25 +11457,23 @@ void ggml_backend_vk_get_device_memory(int device, size_t * free, size_t * total
1145711457 GGML_ASSERT(device < (int) vk_instance.device_supports_membudget.size());
1145811458
1145911459 vk::PhysicalDevice vkdev = vk_instance.instance.enumeratePhysicalDevices()[vk_instance.device_indices[device]];
11460- vk::PhysicalDeviceMemoryProperties memprops = vkdev.getMemoryProperties();
11461- bool membudget_supported = vk_instance.device_supports_membudget[device];
11462-
1146311460 vk::PhysicalDeviceMemoryBudgetPropertiesEXT budgetprops;
11464- vk::PhysicalDeviceMemoryProperties2 memprops2 = {};
11465-
11461+ vk::PhysicalDeviceMemoryProperties2 memprops = {};
11462+ bool membudget_supported = vk_instance.device_supports_membudget[device];
11463+
1146611464 if (membudget_supported) {
11467- memprops2.pNext = &budgetprops;
11468- vkdev.getMemoryProperties2(&memprops2);
11465+ memprops.pNext = &budgetprops;
1146911466 }
11467+ vkdev.getMemoryProperties2(&memprops);
1147011468
11471- for (uint32_t i = 0; i < memprops.memoryHeapCount; ++i) {
11472- const vk::MemoryHeap & heap = memprops.memoryHeaps[i];
11469+ for (uint32_t i = 0; i < memprops.memoryProperties. memoryHeapCount; ++i) {
11470+ const vk::MemoryHeap & heap = memprops.memoryProperties. memoryHeaps[i];
1147311471
1147411472 if (heap.flags & vk::MemoryHeapFlagBits::eDeviceLocal) {
1147511473 *total = heap.size;
1147611474
1147711475 if (membudget_supported && i < budgetprops.heapUsage.size()) {
11478- *free = *total - budgetprops.heapUsage[i];
11476+ *free = budgetprops.heapBudget[i] - budgetprops.heapUsage[i];
1147911477 } else {
1148011478 *free = heap.size;
1148111479 }
0 commit comments