Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

验证层

验证层能够让开发者验证应用程序是否正确使用了 Vulkan API。调试构建和发布构建中均可启用验证层,包括导出后的项目。

备注

启用验证层会对性能产生影响,因此,请只有在实际需要输出来调试程序时才启用。

Windows

安装 Vulkan SDK https://vulkan.lunarg.com/sdk/home,它的默认安装包里就已经包含了验证层。在安装时,不需要手动开启任何可选功能,直接安装核心的 Vulkan SDK 就足够了。安装完 SDK 后不需要重启电脑,但你可能需要关闭并重新打开当前正在使用的终端窗口。

安装好 Vulkan SDK 之后,请带上 --gpu-validation command line argument 来启动 Godot。你还可以同时加上 --gpu-abort 参数,这样一旦 Godot 检测到验证错误,就会立刻自动退出。这样做的好处是,万一真的发生了验证错误,可以有效防止你的整个系统因为卡死而崩溃。

macOS

警告

Godot 官方提供的 macOS 构建版本 支持验证层,因为这些版本是静态链接到 Vulkan SDK 的。而要想正常使用验证层,必须使用动态链接的方式。

在实际操作中,这意味着如果你要在 macOS 上使用验证层,必须 使用带有 use_volk=yes 这个 SCons 选项编译出来的 Godot 版本(具体可参考 为 macOS 平台编译 文档)。如果你是在一个已经导出的项目中测试验证层,那么你必须重新编译导出模板(export template),并在你项目的 macOS 导出预设(export preset)中,将它指定为自定义导出模板。

安装 Vulkan SDK https://vulkan.lunarg.com/sdk/home,它的默认安装包里就已经包含了验证层。在安装时,不需要手动开启任何可选功能,直接安装核心的 Vulkan SDK 就足够了。安装完 SDK 后不需要重启电脑,但你可能需要关闭并重新打开当前正在使用的终端窗口。

安装好 Vulkan SDK 之后,请运行一个在编译时开启了 use_volk=yes 选项的 Godot 程序。启动时,请带上 --gpu-validation command line argument。你还可以同时加上 --gpu-abort 参数,这样一旦 Godot 检测到验证错误,就会立刻自动退出。这样做的好处是,万一真的发生了验证错误,可以有效防止你的整个系统因为卡死而崩溃。

Linux、*BSD

从你的 Linux 发行版自带的软件仓库(repositories)中安装 Vulkan 验证层。

vulkan-validation-layers

安装好验证层后,你不需要重启电脑,但可能需要关闭并重新打开当前正在使用的终端窗口。

安装好软件包后,请带上 --gpu-validation command line argument 来启动 Godot。你还可以同时指定 --gpu-abort 参数,这样一旦 Godot 检测到验证错误,就会立刻自动退出。这样做的好处是,万一真的发生了验证错误,可以有效防止你的整个系统因为卡死而崩溃。

iOS

验证层目前在 iOS 平台上 受支持。

Web

验证层在网页(Web)平台上 受支持,因为网页端根本不支持 Vulkan。

Android

在安卓上启用验证层后,开发者就可以在 adb logcat 的输出信息中看到相关的错误和警告提示了。

启用验证层

从官方源码构建验证层

要编译安卓库,请按照 Khronos' repository 中的说明进行操作。成功编译后,生成的库文件会存放在 Vulkan-ValidationLayers/build-android/libs 目录下。

复制库

Vulkan-ValidationLayers/build-android/libs 目录下的库文件,复制到 godot/platform/android/java/app/libs/debug/vulkan_validation_layers 这个文件夹里。

你的 Godot 源代码目录结构应该看起来像下面这个例子一样:

godot
|-- platform
    |-- android
        |-- java
            |-- app
                |-- libs
                    |-- debug
                        |-- vulkan_validation_layers
                            |-- arm64-v8a
                            |-- armeabi-v7a
                            |-- x86
                            |-- x86_64

如果 libs/debug/vulkan_validation_layers 这个子目录不存在,就手动创建一个。

编译并运行 Android 应用

在安卓(Android)的调试构建版本中,链接好的验证层(validation layers)会被自动加载并启用。你可以直接使用 Godot 的 一键部署 功能,在开启验证层的状态下快速测试你的项目。