跳到主要内容

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。