如何从 C 中的 X11 window 获取 Vulkan 上下文?

How to get Vulkan context from X11 window in C?

我正在尝试在 Linux 中创建一个 Vulkan 应用程序。如何从原始 X11 window 获取 Vulkan 上下文,不涉及 Qt 或 GTK。

谢谢:)

如果您已经有了 X11 window,您需要定义 VK_USE_PLATFORM_XLIB_KHR 并使用 vkCreateXlibSurfaceKHR 从中创建一个 Vulkan 兼容表面,或者如果您想使用 XCB,您需要使用 vkCreateXcbSurfaceKHR 并定义 VK_USE_PLATFORM_XCB_KHR.

另请注意,您需要在实例创建时提供适当的表面扩展。 VK_KHR_XLIB_SURFACE_EXTENSION_NAMEVK_KHR_XCB_SURFACE_EXTENSION_NAME.

然后您在交换链创建时提供该表面(假定您的应用程序执行一些可见输出)。

the WSI chapter of the spec for details