图层

图层是可选组件,可增强 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 上使用隐式图层。