Major changes

Signed-off-by: Robear Selwans <robear.selwans@outlook.com>
This commit is contained in:
2025-07-02 12:26:20 +03:00
parent 4ec57bbd79
commit dd0d232c97
32 changed files with 997 additions and 182 deletions
+12 -7
View File
@@ -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;
}