如何加载扩展

How to load extensions

我正在尝试编写 Vulkan 程序,但对扩展机制的工作原理有些模糊。

具体来说,我想访问 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT(在编译时未找到)但不确定如何包含 swapchain_colorspace 扩展名。

VK_EXT_swapchain_colorspace 是一个 实例 扩展。 您可以通过 pCreateInfo->ppEnabledExtensionNames.

将其名称传递给 vkCreateInstance 来启用扩展

您可以直接使用 "VK_EXT_swapchain_colorspace" 或使用 VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME 宏来避免拼写错误。

然后,一般来说,你必须加载扩展命令(函数),除非它是WSI并且你使用的是官方的Vulkan加载器。 VK_EXT_swapchain_colorspace 未定义新命令,因此可以跳过该步骤。

VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT这样的枚举总是present\defined(假设你已经更新了vulkan.hheader;如果没有,就下载最新的LunarG Vulkan SDK)。启用扩展仅授予使用它们的正式许可。