Vulkan 为什么枚举扩展中的 pLayerName 参数

Vulkan why pLayerName parameter in enumerate extensions

这不是问题,但我不是很理解,我觉得我错过了 vulkan 中的一个重要部分。我的问题是为什么在 vkEnumerateInstanceExtensionProperties() 函数中有一个 pLayerName 参数。这个 pLayerName 与验证层有什么关系吗?我已经阅读了规范,但它只告诉我它将是一个从中检索扩展的层。但对我来说这没有意义,因为验证层(如果这是针对 pLayerName 的)与扩展有什么关系。

来自规范:

When pLayerName parameter is NULL, only extensions provided by the Vulkan implementation or by implicitly enabled layers are returned. When pLayerName is the name of a layer, the instance extensions provided by that layer are returned.

图层可以公开扩展;通过指定层的名称,您可以通过此函数查询它公开了哪些扩展。然后,您可以使用具有该扩展名的该层创建一个实例。

请注意,术语“验证层”表示用于验证 Vulkan API 用法的 Vulkan 层。并非每一层都存在以进行验证。并且一些验证层本身公开了实例扩展。