|
|
|
@ -753,17 +753,23 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR |
|
|
|
functions.vkGetInstanceProcAddr = dld.vkGetInstanceProcAddr; |
|
|
|
functions.vkGetDeviceProcAddr = dld.vkGetDeviceProcAddr; |
|
|
|
|
|
|
|
const VmaAllocatorCreateInfo allocator_info = { |
|
|
|
.flags = VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, |
|
|
|
VmaAllocatorCreateFlags flags = VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT; |
|
|
|
if (extensions.memory_budget) { |
|
|
|
flags |= VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT; |
|
|
|
} |
|
|
|
const VmaAllocatorCreateInfo allocator_info{ |
|
|
|
.flags = flags, |
|
|
|
.physicalDevice = physical, |
|
|
|
.device = *logical, |
|
|
|
.preferredLargeHeapBlockSize = 0, |
|
|
|
.preferredLargeHeapBlockSize = is_integrated |
|
|
|
? (64u * 1024u * 1024u) |
|
|
|
: (256u * 1024u * 1024u), |
|
|
|
.pAllocationCallbacks = nullptr, |
|
|
|
.pDeviceMemoryCallbacks = nullptr, |
|
|
|
.pHeapSizeLimit = nullptr, |
|
|
|
.pVulkanFunctions = &functions, |
|
|
|
.instance = instance, |
|
|
|
.vulkanApiVersion = VK_API_VERSION_1_1, |
|
|
|
.vulkanApiVersion = ApiVersion(), |
|
|
|
.pTypeExternalMemoryHandleTypes = nullptr, |
|
|
|
}; |
|
|
|
|
|
|
|
|