Vulkan:vkGetPhysicalDeviceSurfaceFormatsKHR 没有可用的格式?

Vulkan: vkGetPhysicalDeviceSurfaceFormatsKHR No Formats available?

我正在执行 ogldev's vulkan tutorials and I've run into this problem with specifically the vkGetPhysicalDeviceSurfaceFormatsKHR 功能。文档说,如果 pSurfaceFormats 参数为 NULL,它将告诉 pSurfaceFormatCount 指针中实际可用的表面格式的数量。

这就是我的问题所在。它根本不涉及整数指针。

    uint NumFormats = 0;
    res = vkGetPhysicalDeviceSurfaceFormatsKHR(PhysDev, Surface, &NumFormats, NULL);
    if(res != VK_SUCCESS) {
        LIFE_ERROR("vkGetPhysicalDeviceSurfaceFormatsKHR error: %d\n", res);
        assert(0);
    }
    assert(NumFormats > 0);

assert(NumFormats > 0) 失败)我 运行 Linux 使用 nvidia 驱动程序,我很确定 vulkan API 可以正确看到我的 gpu,因为我的输出是这样的:

Found 6 extensions
Instance extension 0 - VK_KHR_surface
Instance extension 1 - VK_KHR_xcb_surface
Instance extension 2 - VK_KHR_xlib_surface
Instance extension 3 - VK_KHR_wayland_surface
Instance extension 4 - VK_EXT_debug_report
Instance extension 5 - VK_NV_external_memory_capabilities
Surface created
Num physical devices 1
Device name: GTX 980 Ti
    API version: 1.0.24
    Num of family queues: 2
....(assert failes)

问题已解决。我查看了 并发现在尝试检查可用的表面格式和功能之前我忘记了初始化 xcb window。