Layer
Layer可以在应用程序中拦截、评估和修改现有的 Vulkan 功能 。可以使用 vkEnumerateInstanceLayerProperties 从应用程序查询Layer属性。
使用Layer
Layer被打包成共享库,这些库由vulkan loader 动态加载并插入到它和应用程序之间。使用 layers 的两个条件是二进制文件的位置和要启用的 layers。启用的layer可以由应用程序显式指定,也可以通过告诉loader来隐式启用。关于隐式layer和显式layer更详细的信息,请阅读 Loader 和 Layer Interface。
Vulkan SDK 包含一个layer配置文档,该文档非常具体地说明了如何在各个平台上查找和配置layer。
Vulkan 配置器
Windows、Linux 和 macOS 上的开发人员可以使用 Vulkan 配置器(vkconfig)的图形界面启用显式layer和禁用隐式layer,以及更改layer设置。 关于如何使用 Vulkan Configurator 更详细的信息,请参阅 Vulkan SDK 中的 Vulkan 配置器文档。
设备级Layer已弃用
过去既有实例级layer又有设备级layer,但设备级layer在 Vulkan 早期就被废弃了,应当避免使用。
创建Layer
只要遵循 loader 与 layer 接口,任何人都可以创建layer,该接口就是 loader 和 layers 之间相互通信的方式。
各平台使用说明
隐式layer的加载方式因 loader 和平台而异。
Android
从 Android P(Android 9/API 级别 28)开始,如果应用程序是debug模式,可以使用 ADB 推送隐式layer。
Linux
Vulkan SDK 介绍了如何在 Linux 上使用隐式layer。
macOS
Vulkan SDK 介绍了如何在 MacOS 上使用隐式layer。
Windows
Vulkan SDK 介绍了如何在 Windows 上使用隐式layer。