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 /src/vkh_device.c | |
| parent | c5b7f0e6000fd61a920a69d4983624ae105a644b (diff) | |
Diffstat (limited to 'src/vkh_device.c')
| -rw-r--r-- | src/vkh_device.c | 12 |
1 files changed, 6 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); } |