在哪里可以找到有关 vulkan 实例层和扩展的信息?

Where can I find information about vulkan instance layers and extensions?

我认为它们会在此处的官方文档中列出

https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkInstanceCreateInfo.html

但是点击图层 link 没有任何反应,扩展也没有任何反应

我在这里找到了一个描述概念的片段以及一些代码

http://gpuopen.com/using-the-vulkan-validation-layers/

但它一定是过时的,因为在我的 vulkan header (1.0.21.1) 中没有 "VK_LAYER_LUNARG_standard_validation" 之类的东西,或者任何以 "VK_LAYER" 开头的东西。

我想我正确地连接了 SDK,我得到了实例 运行,我可以检查兼容的硬件和东西,但我只需要一些更可靠的文档来配合我的进步。

图层记录在 Lunar Xchange 中。 SDK 是开源的,有时查看源代码或随它提供的文档是有益的 — 在 GitHub: KhronosGroup/Vulkan-LoaderAndValidationLayers .

WSI 扩展在相应的 specification (accessible from the registry).

核心 Vulkan 中进行了记录。

其他扩展目前仅是源代码 (AFAIK),如 注册表 中所链接。如果某些外部方托管它们,我不会感到惊讶——例如Lunar Xchange 至少为 VK_EXT_debug_reportVK_EXT_debug_marker 扩展编译了它们。

更新:


扩展还没有那么复杂。对于即时需求,打开适当的 GitHub 分支并单击 "compare" 以查看相关部分(以更难阅读的源代码形式)就足够了。

有些相关的是可以在 SPIR-V registry.

中正确访问的 SPIR-V 扩展

KHR_vulkan_glsl 仅为文本且可用 here (also accessible from the registry)。 (总体上是例外——例如,不需要启用它。)

VK_LAYER_LUNARG_standard_validation 是一回事。它是一个元层。它启用所有其他验证层并按正确顺序执行。

层在 C 头文件中没有任何内容,因为它们不能引入新功能。它们只能通过适当的函数被枚举和启用。 VK_LAYER_ 确实是正确的前缀,vkEnumerateInstanceLayerProperties 应该 return 给你。