如果扩展是核心扩展,我如何签入 Vulkan 代码?

How can i check in Vulkan code if extension is core extension?

我想知道是否有任何方法可以检查硬件支持的扩展是否是核心扩展?核心扩展总是在受支持的扩展中返回吗?我问是因为我用于检查是否支持我想要的所有扩展的代码是复制这些扩展的数组以进行设置,删除支持的扩展列表中的所有扩展并检查设置是否为空。不会出现扩展是核心扩展并且未在支持的扩展中列出从而使我检查的集合非空的情况吗?

您需要在创建实例时指定您在 VkApplicationInfo::apiVersion 中使用的 Vulkan 版本。此 API 版本准确指定了您获得的核心 API。除此之外,扩展中还有可用的功能,这些功能在运行时列在“可用扩展”中,并且必须在运行时在“启用的扩展”中请求。没有特殊的扩展子类别。

旧核心 API 中的一些扩展功能已提升到新版本的核心 API 中,但正如我所说,您需要设置核心 API 版本在 apiVersion,所以这不相关。