Added VkMemoryPropertyFlags argument to KRDevice::createImage

This commit is contained in:
2022-07-16 00:03:15 -07:00
parent 3d6dd727c2
commit e61f8aa7d1
2 changed files with 7 additions and 4 deletions

View File

@@ -430,7 +430,7 @@ VmaAllocator KRDevice::getAllocator()
return m_allocator; return m_allocator;
} }
bool KRDevice::createImage(Vector2i dimensions, VkImage* image, VmaAllocation* allocation) bool KRDevice::createImage(Vector2i dimensions, VkMemoryPropertyFlags properties, VkImage* image, VmaAllocation* allocation)
{ {
// TODO - Break block into own function to be shared with createBuffer // TODO - Break block into own function to be shared with createBuffer
int familyCount = 1; int familyCount = 1;
@@ -441,7 +441,6 @@ bool KRDevice::createImage(Vector2i dimensions, VkImage* image, VmaAllocation* a
familyCount++; familyCount++;
} }
VmaAllocationCreateInfo allocationInfo{};
VkImageCreateInfo imageInfo{}; VkImageCreateInfo imageInfo{};
imageInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; imageInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
imageInfo.imageType = VK_IMAGE_TYPE_2D; imageInfo.imageType = VK_IMAGE_TYPE_2D;
@@ -460,7 +459,11 @@ bool KRDevice::createImage(Vector2i dimensions, VkImage* image, VmaAllocation* a
imageInfo.pQueueFamilyIndices = queueFamilyIndices; imageInfo.pQueueFamilyIndices = queueFamilyIndices;
imageInfo.queueFamilyIndexCount = familyCount; imageInfo.queueFamilyIndexCount = familyCount;
VkResult res = vmaCreateImage(m_allocator, &imageInfo, &allocationInfo, image, allocation, nullptr); VmaAllocationCreateInfo allocInfo = {};
allocInfo.usage = VMA_MEMORY_USAGE_GPU_ONLY;
allocInfo.requiredFlags = properties;
VkResult res = vmaCreateImage(m_allocator, &imageInfo, &allocInfo, image, allocation, nullptr);
if (res != VK_SUCCESS) { if (res != VK_SUCCESS) {
return false; return false;
} }

View File

@@ -55,7 +55,7 @@ public:
#endif #endif
); );
bool createImage(Vector2i dimensions, VkImage* image, VmaAllocation* allocation); bool createImage(Vector2i dimensions, VkMemoryPropertyFlags properties, VkImage* image, VmaAllocation* allocation);
KrResult selectSurfaceFormat(VkSurfaceKHR& surface, VkSurfaceFormatKHR& surfaceFormat); KrResult selectSurfaceFormat(VkSurfaceKHR& surface, VkSurfaceFormatKHR& surfaceFormat);
KrResult selectDepthFormat(VkFormat& selectedDepthFormat); KrResult selectDepthFormat(VkFormat& selectedDepthFormat);