图层
图层是可选组件,可增强 Vulkan 系统。它们可以拦截、评估和修改现有 Vulkan 函数,从应用程序到硬件。可以使用 vkEnumerateInstanceLayerProperties 从应用程序查询图层属性。
使用图层
图层打包为共享库,由加载器动态加载并插入到加载器和应用程序之间。使用图层需要两件事:二进制文件的位置以及要启用的图层。要使用的图层可以由应用程序显式启用,也可以通过告知加载器使用它们来隐式启用。有关隐式图层和显式图层的更多详细信息,请参见 加载器和图层接口。
Vulkan SDK 包含一份 图层配置文档,该文档非常具体地说明了如何在每个平台上发现和配置图层。
Vulkan 配置器工具
Windows、Linux 和 macOS 上的开发人员可以使用 Vulkan 配置器 vkconfig,通过图形用户界面启用显式图层并禁用隐式图层,以及更改图层设置。有关使用 Vulkan 配置器的更多信息,请参见 Vulkan SDK 中的 Vulkan 配置器文档。
设备图层弃用
过去同时存在实例图层和设备图层,但是设备图层在 Vulkan 的早期就被 弃用,应该避免使用。
创建图层
任何人都可以创建图层,只要它遵循 加载器到图层接口,这是加载器和图层达成相互通信协议的方式。
平台差异
隐式加载图层的方式因加载器和平台而异。
Android
从 Android P(Android 9 / API 级别 28)开始,如果设备处于可调试状态,使得 getprop ro.debuggable
返回 1,则加载器将在 /data/local/debug/vulkan 中查找。
从 Android P(Android 9 / API 级别 28)开始,如果应用程序以调试模式构建,则可以使用 ADB 推送隐式图层。
除了上述选项之外,没有其他方法可以使用隐式图层。
Linux
Vulkan SDK 说明了如何在 Linux 上使用隐式图层。
MacOS
Vulkan SDK 说明了如何在 MacOS 上使用隐式图层。
Windows
Vulkan SDK 说明了如何在 Windows 上使用隐式图层。