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

Sam*_*aus 1 c x11 vulkan

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

谢谢 :)

Sas*_*ems 7

如果您已经拥有 X11 窗口,则需要使用 定义VK_USE_PLATFORM_XLIB_KHR并创建与 Vulkan 兼容的表面vkCreateXlibSurfaceKHR,或者如果您想使用 XCB,则需要使用vkCreateXcbSurfaceKHR并定义VK_USE_PLATFORM_XCB_KHR.

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

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

有关详细信息,请参阅规范的 WSI 章节