19 lines
572 B
C++
19 lines
572 B
C++
#pragma once
|
|
#include <vulkan/vulkan.h>
|
|
#include <cstdint>
|
|
#include <vector>
|
|
|
|
struct VulkanMemoryProperties : VkPhysicalDeviceMemoryProperties {
|
|
std::vector<std::uint32_t> findSuitableMemoryTypeIndices(VkMemoryPropertyFlags properties, std::uint32_t memoryTypeIndexMask = -1) {
|
|
std::vector<std::uint32_t> result;
|
|
for (std::uint32_t i = 0; i < memoryTypeCount; ++i){
|
|
if ((memoryTypeIndexMask & 1) != 0){
|
|
if ((memoryTypes[i].propertyFlags & properties) == properties){
|
|
result.push_back(i);
|
|
}
|
|
}
|
|
memoryTypeIndexMask >>= 1;
|
|
}
|
|
return result;
|
|
}
|
|
}; |