From 0b1ee1525dff764895719adcc283de5061836398 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Bruyère Date: Fri, 23 Oct 2026 14:19:18 +0200 Subject: debug imported dev --- src/vkh_device.c | 12 ++++++------ src/vkh_device.h | 1 + src/vma/VmaUsage.cpp | 5 +++++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/vkh_device.c b/src/vkh_device.c index 8659ef3..3d8b62f 100644 --- a/src/vkh_device.c +++ b/src/vkh_device.c @@ -38,6 +38,7 @@ VkhDevice vkh_device_create(VkhApp app, VkhPhyInfo phyInfo, VkDeviceCreateInfo * VK_CHECK_RESULT(vkCreateDevice(phyInfo->phy, pDevice_info, NULL, &dev)); VkhDevice vkhd = vkh_device_import(app->inst, phyInfo->phy, dev); vkhd->vkhApplication = app; + vkhd->imported = false; return vkhd; } VkhDevice vkh_device_import(VkInstance inst, VkPhysicalDevice phy, VkDevice vkDev) { @@ -45,16 +46,14 @@ VkhDevice vkh_device_import(VkInstance inst, VkPhysicalDevice phy, VkDevice vkDe dev->dev = vkDev; dev->phy = phy; dev->instance = inst; + dev->imported = true; vkGetPhysicalDeviceMemoryProperties(phy, &dev->phyMemProps); #ifdef VKH_USE_VMA - if (!dev->allocator) { - VmaAllocatorCreateInfo allocatorInfo = {.physicalDevice = phy, .device = vkDev}; - vmaCreateAllocator(&allocatorInfo, &dev->allocator); - } + VmaAllocatorCreateInfo allocatorInfo = {.physicalDevice = phy, .device = vkDev}; + vmaCreateAllocator(&allocatorInfo, &dev->allocator); #else #endif - return dev; } VkResult vkh_device_status(VkhDevice dev) { return dev == NULL ? VK_ERROR_UNKNOWN : dev->status; } @@ -99,7 +98,8 @@ void vkh_device_destroy(VkhDevice dev) { vmaDestroyAllocator(dev->allocator); #else #endif - vkDestroyDevice(dev->dev, NULL); + if (!dev->imported) + vkDestroyDevice(dev->dev, NULL); free(dev); } diff --git a/src/vkh_device.h b/src/vkh_device.h index 1340bdf..f44381f 100644 --- a/src/vkh_device.h +++ b/src/vkh_device.h @@ -42,6 +42,7 @@ typedef struct _vkh_device_t { VmaAllocator allocator; #endif VkhApp vkhApplication; + bool imported; } vkh_device_t; #ifdef __cplusplus diff --git a/src/vma/VmaUsage.cpp b/src/vma/VmaUsage.cpp index f15a951..25e5d07 100644 --- a/src/vma/VmaUsage.cpp +++ b/src/vma/VmaUsage.cpp @@ -4,6 +4,11 @@ vk_mem_alloc.h to include definitions of its internal implementation */ #pragma warning(push) #pragma warning(disable : 4100; disable : 4127; disable : 4324) + +//#define VMA_DEBUG_LOG(format, ...) printf(format "\n", ##__VA_ARGS__) +// Alternatively, tell VMA how to print leaks explicitly +//#define VMA_LEAK_LOG_FORMAT(format) "VMA LEAK: " format + #define VMA_IMPLEMENTATION #include #include "../vk_mem_alloc.h" -- cgit v1.3.1-4-g156e