std::optional VulkanContext::findMemoryType()

in RenderScriptMigrationSample/app/src/main/cpp/VulkanContext.cpp [226:238]


std::optional<uint32_t> VulkanContext::findMemoryType(uint32_t memoryTypeBits,
                                                      VkFlags properties) const {
    for (uint32_t i = 0; i < mPhysicalDeviceMemoryProperties.memoryTypeCount; i++) {
        if (memoryTypeBits & 1u) {
            if ((mPhysicalDeviceMemoryProperties.memoryTypes[i].propertyFlags & properties) ==
                properties) {
                return i;
            }
        }
        memoryTypeBits >>= 1u;
    }
    return std::nullopt;
}