diff options
| author | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2026-10-23 14:19:18 +0200 |
|---|---|---|
| committer | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2026-10-23 14:19:18 +0200 |
| commit | 0b1ee1525dff764895719adcc283de5061836398 (patch) | |
| tree | 8ad0fcc53e1670fade9f4a6e702849bc20691a11 | |
| parent | c5b7f0e6000fd61a920a69d4983624ae105a644b (diff) | |
| -rw-r--r-- | src/vkh_device.c | 12 | ||||
| -rw-r--r-- | src/vkh_device.h | 1 | ||||
| -rw-r--r-- | 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 <cstdio> #include "../vk_mem_alloc.h" |