关于 VkPhysicalDeviceVulkan12Features 的问题

question about VkPhysicalDeviceVulkan12Features

我 运行 在使用 bootstrap https://github.com/charles-lunarg/vk-bootstrap 向物理设备添加功能时遇到问题。这样做让我断言失败 Assertion failed: m_init, file \vkbootstrap\VkBootstrap.h, line 132

我知道这可能表示 vk-bootstrap 源代码中存在错误,但我想排除这是我自己的错。这是我用来将 (empty)VkPhysicalDeviceVulkan12Features 添加到物理设备的代码片段,我想知道我是否正确初始化它

    VkPhysicalDeviceVulkan12Features feat;
    feat.pNext = nullptr;
    feat.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES;

    vkb::PhysicalDeviceSelector selector{ vkb_inst };
    vkb::PhysicalDevice physicalDevice = selector
        .set_minimum_version(1, 2)
        .set_surface(_surface)
        .set_required_features_12(feat)
        .select()
        .value();

您没有检查结果是否有错误。

可能应该是这样的:

vkb::PhysicalDeviceSelector selector{ vkb_inst };
auto maybe_device = selector.select();
if( !maybe_device ) panic( maybe_device.error() );

vkb::PhysicalDevice device = maybe_device.value();