Major changes
Signed-off-by: Robear Selwans <robear.selwans@outlook.com>
This commit is contained in:
+12
-7
@@ -1,5 +1,3 @@
|
||||
#pragma once
|
||||
|
||||
#include "evkMemory.h"
|
||||
|
||||
evkGPUAllocator evkGPUCreateAllocator(evkDevice device)
|
||||
@@ -7,6 +5,7 @@ evkGPUAllocator evkGPUCreateAllocator(evkDevice device)
|
||||
VmaVulkanFunctions vmaFunctions = {
|
||||
.vkGetPhysicalDeviceProperties = vkGetPhysicalDeviceProperties,
|
||||
.vkGetPhysicalDeviceMemoryProperties = vkGetPhysicalDeviceMemoryProperties,
|
||||
.vkGetPhysicalDeviceMemoryProperties2KHR = vkGetPhysicalDeviceMemoryProperties2,
|
||||
.vkAllocateMemory = vkAllocateMemory,
|
||||
.vkFreeMemory = vkFreeMemory,
|
||||
.vkMapMemory = vkMapMemory,
|
||||
@@ -14,9 +13,13 @@ evkGPUAllocator evkGPUCreateAllocator(evkDevice device)
|
||||
.vkFlushMappedMemoryRanges = vkFlushMappedMemoryRanges,
|
||||
.vkInvalidateMappedMemoryRanges = vkInvalidateMappedMemoryRanges,
|
||||
.vkBindBufferMemory = vkBindBufferMemory,
|
||||
.vkBindBufferMemory2KHR = vkBindBufferMemory2KHR,
|
||||
.vkBindImageMemory = vkBindImageMemory,
|
||||
.vkBindImageMemory2KHR = vkBindImageMemory2KHR,
|
||||
.vkGetBufferMemoryRequirements = vkGetBufferMemoryRequirements,
|
||||
.vkGetBufferMemoryRequirements2KHR = vkGetBufferMemoryRequirements2,
|
||||
.vkGetImageMemoryRequirements = vkGetImageMemoryRequirements,
|
||||
.vkGetImageMemoryRequirements2KHR = vkGetImageMemoryRequirements2KHR,
|
||||
.vkCreateBuffer = vkCreateBuffer,
|
||||
.vkDestroyBuffer = vkDestroyBuffer,
|
||||
.vkCreateImage = vkCreateImage,
|
||||
@@ -30,10 +33,11 @@ evkGPUAllocator evkGPUCreateAllocator(evkDevice device)
|
||||
.instance = device._instance.vk,
|
||||
.vulkanApiVersion = device._instance.apiVersion,
|
||||
.pVulkanFunctions = &vmaFunctions,
|
||||
.flags = VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT | VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT,
|
||||
};
|
||||
|
||||
evkGPUAllocator alloc;
|
||||
vmaCreateAllocator(&createInfo, &alloc.vma);
|
||||
assert(vmaCreateAllocator(&createInfo, &alloc.vma) == VK_SUCCESS);
|
||||
|
||||
return alloc;
|
||||
}
|
||||
@@ -48,7 +52,7 @@ evkImage evkGPUCreateImage(evkGPUAllocationCreateInfo allocationCreateInfo, VkIm
|
||||
evkImage img;
|
||||
|
||||
VmaAllocationCreateInfo vmaAllocCreateInfo = {
|
||||
.usage = allocationCreateInfo.memoryUsage,
|
||||
.usage = VMA_MEMORY_USAGE_AUTO,
|
||||
.flags = allocationCreateInfo.allocationFlags,
|
||||
.pool = allocationCreateInfo.pool.vma,
|
||||
};
|
||||
@@ -63,17 +67,18 @@ void evkGPUDestroyImage(evkImage img)
|
||||
vmaDestroyImage(img.allocData.allocator.vma, img.vk, img.allocData.allocation.vma);
|
||||
}
|
||||
|
||||
evkBuffer evkGPUCreateBuffer(evkGPUAllocationCreateInfo allocationCreateInfo, VkBufferCreateInfo* imageCreateInfo)
|
||||
evkBuffer evkGPUCreateBuffer(evkGPUAllocationCreateInfo allocationCreateInfo, VkBufferCreateInfo* bufferCreateInfo)
|
||||
{
|
||||
evkBuffer buf;
|
||||
|
||||
VmaAllocationCreateInfo vmaAllocCreateInfo = {
|
||||
.usage = allocationCreateInfo.memoryUsage,
|
||||
.usage = VMA_MEMORY_USAGE_AUTO,
|
||||
.flags = allocationCreateInfo.allocationFlags,
|
||||
.pool = allocationCreateInfo.pool.vma,
|
||||
};
|
||||
|
||||
vmaCreateBuffer(allocationCreateInfo.allocator.vma, imageCreateInfo, &vmaAllocCreateInfo, &buf.vk, &buf.allocData.allocation.vma, &buf.allocData.allocationInfo.vma);
|
||||
vmaCreateBuffer(allocationCreateInfo.allocator.vma, bufferCreateInfo, &vmaAllocCreateInfo, &buf.vk, &buf.allocData.allocation.vma, &buf.allocData.allocationInfo.vma);
|
||||
buf.usage = bufferCreateInfo->usage;
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user