枚举扩展中的Vulkan why pLayerName参数

枚举扩展中的Vulkan why pLayerName参数,vulkan,Vulkan,这不是一个问题,但我真的不明白,我觉得我错过了vulkan的一个重要部分。我的问题是为什么vkEnumerateInstanceExtensionProperties()函数中有pLayerName参数。这个pLayerName与验证层有什么关系吗?我读过规范,但它只告诉我,它将是一个从中检索扩展的层。但对我来说,这没有意义,因为验证层(如果是针对pLayerName的)与扩展有什么关系。来自规范: 当pLayerName参数为NULL时,仅返回Vulkan实现或隐式启用层提供的扩展。当pLay

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

来自规范:

pLayerName
参数为NULL时,仅返回Vulkan实现或隐式启用层提供的扩展。当
pLayerName
是层的名称时,将返回该层提供的实例扩展

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


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

一个例子是VK_EXT_validation_features扩展,它由VK_层KHRONOS_验证层公开,用于配置验证功能。