|
|
|
@ -34,30 +34,31 @@ namespace skyline::gpu::memory {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MemoryManager::MemoryManager(const GPU &pGpu) : gpu(pGpu) {
|
|
|
|
|
auto dispatcher{gpu.vkDevice.getDispatcher()};
|
|
|
|
|
auto instanceDispatcher{gpu.vkInstance.getDispatcher()};
|
|
|
|
|
auto deviceDispatcher{gpu.vkDevice.getDispatcher()};
|
|
|
|
|
VmaVulkanFunctions vulkanFunctions{
|
|
|
|
|
.vkGetPhysicalDeviceProperties = dispatcher->vkGetPhysicalDeviceProperties,
|
|
|
|
|
.vkGetPhysicalDeviceMemoryProperties = dispatcher->vkGetPhysicalDeviceMemoryProperties,
|
|
|
|
|
.vkAllocateMemory = dispatcher->vkAllocateMemory,
|
|
|
|
|
.vkFreeMemory = dispatcher->vkFreeMemory,
|
|
|
|
|
.vkMapMemory = dispatcher->vkMapMemory,
|
|
|
|
|
.vkUnmapMemory = dispatcher->vkUnmapMemory,
|
|
|
|
|
.vkFlushMappedMemoryRanges = dispatcher->vkFlushMappedMemoryRanges,
|
|
|
|
|
.vkInvalidateMappedMemoryRanges = dispatcher->vkInvalidateMappedMemoryRanges,
|
|
|
|
|
.vkBindBufferMemory = dispatcher->vkBindBufferMemory,
|
|
|
|
|
.vkBindImageMemory = dispatcher->vkBindImageMemory,
|
|
|
|
|
.vkGetBufferMemoryRequirements = dispatcher->vkGetBufferMemoryRequirements,
|
|
|
|
|
.vkGetImageMemoryRequirements = dispatcher->vkGetImageMemoryRequirements,
|
|
|
|
|
.vkCreateBuffer = dispatcher->vkCreateBuffer,
|
|
|
|
|
.vkDestroyBuffer = dispatcher->vkDestroyBuffer,
|
|
|
|
|
.vkCreateImage = dispatcher->vkCreateImage,
|
|
|
|
|
.vkDestroyImage = dispatcher->vkDestroyImage,
|
|
|
|
|
.vkCmdCopyBuffer = dispatcher->vkCmdCopyBuffer,
|
|
|
|
|
.vkGetBufferMemoryRequirements2KHR = dispatcher->vkGetBufferMemoryRequirements2,
|
|
|
|
|
.vkGetImageMemoryRequirements2KHR = dispatcher->vkGetImageMemoryRequirements2,
|
|
|
|
|
.vkBindBufferMemory2KHR = dispatcher->vkBindBufferMemory2,
|
|
|
|
|
.vkBindImageMemory2KHR = dispatcher->vkBindImageMemory2,
|
|
|
|
|
.vkGetPhysicalDeviceMemoryProperties2KHR = dispatcher->vkGetPhysicalDeviceMemoryProperties2,
|
|
|
|
|
.vkGetPhysicalDeviceProperties = instanceDispatcher->vkGetPhysicalDeviceProperties,
|
|
|
|
|
.vkGetPhysicalDeviceMemoryProperties = instanceDispatcher->vkGetPhysicalDeviceMemoryProperties,
|
|
|
|
|
.vkAllocateMemory = deviceDispatcher->vkAllocateMemory,
|
|
|
|
|
.vkFreeMemory = deviceDispatcher->vkFreeMemory,
|
|
|
|
|
.vkMapMemory = deviceDispatcher->vkMapMemory,
|
|
|
|
|
.vkUnmapMemory = deviceDispatcher->vkUnmapMemory,
|
|
|
|
|
.vkFlushMappedMemoryRanges = deviceDispatcher->vkFlushMappedMemoryRanges,
|
|
|
|
|
.vkInvalidateMappedMemoryRanges = deviceDispatcher->vkInvalidateMappedMemoryRanges,
|
|
|
|
|
.vkBindBufferMemory = deviceDispatcher->vkBindBufferMemory,
|
|
|
|
|
.vkBindImageMemory = deviceDispatcher->vkBindImageMemory,
|
|
|
|
|
.vkGetBufferMemoryRequirements = deviceDispatcher->vkGetBufferMemoryRequirements,
|
|
|
|
|
.vkGetImageMemoryRequirements = deviceDispatcher->vkGetImageMemoryRequirements,
|
|
|
|
|
.vkCreateBuffer = deviceDispatcher->vkCreateBuffer,
|
|
|
|
|
.vkDestroyBuffer = deviceDispatcher->vkDestroyBuffer,
|
|
|
|
|
.vkCreateImage = deviceDispatcher->vkCreateImage,
|
|
|
|
|
.vkDestroyImage = deviceDispatcher->vkDestroyImage,
|
|
|
|
|
.vkCmdCopyBuffer = deviceDispatcher->vkCmdCopyBuffer,
|
|
|
|
|
.vkGetBufferMemoryRequirements2KHR = deviceDispatcher->vkGetBufferMemoryRequirements2,
|
|
|
|
|
.vkGetImageMemoryRequirements2KHR = deviceDispatcher->vkGetImageMemoryRequirements2,
|
|
|
|
|
.vkBindBufferMemory2KHR = deviceDispatcher->vkBindBufferMemory2,
|
|
|
|
|
.vkBindImageMemory2KHR = deviceDispatcher->vkBindImageMemory2,
|
|
|
|
|
.vkGetPhysicalDeviceMemoryProperties2KHR = instanceDispatcher->vkGetPhysicalDeviceMemoryProperties2,
|
|
|
|
|
};
|
|
|
|
|
VmaAllocatorCreateInfo allocatorCreateInfo{
|
|
|
|
|
.physicalDevice = *gpu.vkPhysicalDevice,
|
|
|
|
|