VULKAN:vkgetPhysicalDevicesUrfaceformatskhr无可用格式



我正在执行Ogldev的Vulkan教程的过程中,并且我特别是vkgetPhysicalDevicesUrfaceformateFormatskhr函数遇到了这个问题。文档说,如果PsurfaceFormats参数为null,它将确定在PsurfaceFormatCount指针中实际可用的表面格式。

这是我的问题出现的地方..它根本不会触及整数指针。

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

( servert(numformats> 0(失败(我正在使用NVIDIA驱动程序运行Linux,而且我很确定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窗口。

相关内容

  • 没有找到相关文章