构建指南
CMake 选项
以下选项用于更改构建配置
VKB_VULKAN_DEBUG
启用 VK_EXT_debug_utils 或 VK_EXT_debug_marker(如果支持)。这将启用 Vulkan 对象的调试名称,以及命令缓冲区中的标记/标签。+ 有关更多信息,请参阅调试实用程序示例。
默认: ON
VKB_PROFILING
使用 Tracy 分析器启用性能分析。
如果您没有使用正确的 Tracy 分析器版本作为示例中使用的 Tracy 客户端版本,我们目前使用 Tracy v0.10.0,您将收到协议不匹配错误。
Windows 用户可以从 Tracy v0.10.0 发布页面下载分析器。其他平台需要用户从源代码构建分析器,有关如何为您的平台构建的更多信息,请参阅 Tracy 文档 (pdf)。
Tracy 目前未为 Android 构建启用。未来,我们可能会添加对此的支持。
默认: OFF
质量保证
我们使用一小组工具为项目提供一定程度的质量保证。这些工具是我们 CI/CD 流程的一部分。如果您的本地环境没有与我们在 CI 中使用的工具相同的版本,则在推送时可能会看到一些错误或警告弹出。
有关最新的版本信息,请参阅各个工具的存储库
-
Doxygen Doxygen 存储库
-
Clang Format / Clang Tidy Clang 工具存储库
-
蛇形命名法检查 蛇形命名法检查存储库
-
Android NDK Android NDK 存储库
3D 模型
大多数示例都需要从 https://github.com/KhronosGroup/Vulkan-Samples-Assets 下载的 3D 模型。该存储库被此项目引用为 git 子模块,因此如果您按照项目自述文件中的克隆说明进行操作,则您已经将模型本地存储在 ./assets/
下。
在 Android 上,Gradle 将运行 CMake,如果发生更改,CMake 会将资产同步到设备。
但是,要手动同步它们,您可以运行以下命令以确保设备上的资源是最新的
adb push --sync assets /sdcard/Android/data/com.khronos.vulkan_samples/files/
adb push --sync shaders /sdcard/Android/data/com.khronos.vulkan_samples/files/
性能数据
为了显示性能数据,需要在设备上启用性能分析。某些设备可能默认禁用此功能。
可以通过 adb 启用性能分析
adb shell setprop security.perf_harden 0
性能数据是使用 HWCPipe 捕获的。有关此项目以及如何将其集成到您的管道中的详细信息,请访问:https://github.com/ARM-software/HWCPipe
Windows
Clang Format 和 Visual Studio
建议使用 clang-format-15
,它与我们的 .clang-format
文件中的样式兼容。它也被 CI 使用,并且是 Visual Studio 2022 中安装的基本版本。
请转到 LLVM 下载页面获取 clang。
使用 CMake 和 Visual Studio 构建
请确保在运行任何示例时,您要么
启用开发者模式
以管理员身份运行命令提示符或 Visual Studio
步骤 1.
以下命令将生成 VS 项目
cmake -G "Visual Studio 15 2017 Win64" -S . -Bbuild/windows
(在 CMake v3.13 之前)
cmake -G "Visual Studio 15 2017 Win64" . -Bbuild/windows
(CMake v3.14 中的新增功能。必须安装 Visual Studio 2019)
cmake -G "Visual Studio 16 2019" -A x64 -S . -Bbuild/windows
(CMake v3.21 中的新增功能。必须安装 Visual Studio 2022)
cmake -G "Visual Studio 17 2022" -A x64 -S . -Bbuild/windows
在 build/windows 中打开 vulkan_samples.sln VS 项目,并使用 Ctrl-Shift-B 进行构建。要运行 Vulkan 示例,请使用 Visual Studio 的“调试属性”选择,并将“调试命令参数”设置为 --help。单击“本地 Windows 调试器”按钮,您应该会在终端中看到帮助输出。为了方便起见,默认设置是运行 hello_triangle 示例;只需将其编辑为您想要运行的示例即可。
或者,对于命令行构建,请使用以下步骤
步骤 2.
构建 Visual Studio 项目
cmake --build build/windows --config Release --target vulkan_samples
步骤 3.
运行 Vulkan Samples 应用程序
build\windows\app\bin\Release\AMD64\vulkan_samples.exe
macOS
依赖项
-
CMake v3.12+(Apple Silicon 至少需要 3.19.2)
-
适用于 Apple Silicon 的 Xcode v12
-
适用于 Xcode 的命令行工具 (CLT)
xcode-select --install
-
Vulkan SDK - 下载并安装具有默认选项的 Vulkan SDK
使用 CMake 和 Xcode 构建
步骤 1.
以下命令将生成项目
cmake -G Xcode -Bbuild/mac-xcode -DCMAKE_BUILD_TYPE=Release
在 build/mac-xcode 中打开 vulkan_samples Xcode 项目,并使用 command-B 进行构建。要运行 Vulkan 示例,请使用 Xcode 的“编辑方案”选择,并将参数设置为 --help。单击“播放”按钮,您应该会在终端中看到帮助输出。为了方便起见,默认设置是运行 hello_triangle 示例;只需将其编辑为您想要运行的示例即可。
或者,对于命令行构建,请使用以下步骤
cmake -Bbuild/mac -DCMAKE_BUILD_TYPE=Release
步骤 2.
构建项目
cmake --build build/mac --config Release --target vulkan_samples -j$(sysctl -n hw.ncpu)
步骤 3.
运行 Vulkan Samples 应用程序以显示帮助消息
./build/mac/app/bin/Release/<arm64|x86_64>/vulkan_samples --help
iOS
依赖项
-
CMake v3.28+(Apple xcframeworks 至少需要 3.28)
-
适用于 Apple Silicon 的 Xcode v12
-
适用于 Xcode 的命令行工具 (CLT)
xcode-select --install
-
Vulkan SDK - 下载并安装 Vulkan SDK,确保选中“适用于 iOS 的开发库”
-
至少需要 1.3.278 版本的 Vulkan 才能获取框架
设置您的环境变量
注意:对于 iOS,您必须运行位于 Vulkan SDK 的 iOS 目录中的 setup-env.sh
source /PATH/TO/VULKAN/SDK/iOS/setup-env.sh
使用 CMake 和 Xcode 构建
步骤 1.
以下命令将生成项目
cmake -G Xcode -Bbuild/ios -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_DEPLOYMENT_TARGET=13.0 -DCMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH=YES -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_IOS_INSTALL_COMBINED=NO -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM="XXXX" -DMACOSX_BUNDLE_GUI_IDENTIFIER="com.YYYY.vulkansamples"
注意:您必须将上面的 XXXX 更改为您的 TeamID(或您的 Apple 开发证书中的组织单位标识符)以进行代码签名,并将 YYYY 更改为您的捆绑包标识符。如果没有代码签名和捆绑包标识符设置,iOS 将不允许应用程序运行。
或者,您可以为 iOS 模拟器构建,而无需代码签名或指定捆绑包标识符(将使用默认捆绑包 ID)。但是,根据您的主机架构,您必须在下面的命令中选择 arm64(Apple Silicon)或 x86_64
cmake -G Xcode -Bbuild/ios-sim -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=13.0 -DCMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH=YES -DCMAKE_OSX_ARCHITECTURES=<arm64|x86_64> -DCMAKE_IOS_INSTALL_COMBINED=NO
步骤 2.
构建项目
建议打开 build/ios 或 build/ios-sim 中生成的 vulkan_samples Xcode 项目,并使用 command-B 进行构建。
或者,您可以使用此处所示的 cmake 进行构建
cmake --build build/ios --config Release --target vulkan_samples -j$(sysctl -n hw.ncpu) -- -sdk iphoneos -allowProvisioningUpdates
步骤 3.
运行 Vulkan Samples 应用程序
要运行 Vulkan 示例,必须配置一个 iOS 物理或模拟器设备,并使其与 Xcode 一起工作。打开 Xcode 项目,并确保可以正常通过 Xcode 构建/安装到设备。一旦从步骤 2 中的构建命令创建了捆绑包,请使用 Xcode 中的“编辑方案”选择,并将参数设置为 --help。单击“播放”按钮,您应该会在终端中看到帮助输出。为了方便起见,默认设置是运行 hello_triangle 示例;只需将其编辑为您想要运行的示例即可。
Android
Android Studio(推荐)
强烈建议安装 Android Studio 来构建、运行和跟踪示例项目。通过 Android Studio 构建至少需要 Ladybug 2024.2.1。
Android Studio 使用以下插件/工具来构建示例
-
Android Gradle 插件
-
CMake 插件,它安装并使用 Ninja
-
NDK
它们的版本在 build.gradle.in 和 app.build.gradle.in 文件中配置;更新这些版本时,请参考 官方文档以获取推荐的组合。
使用 Gradle 构建
生成 gradle 项目
要生成 gradle 项目,请运行以下命令
./scripts/generate.py android
将在根目录的 build\android_gradle
中创建一个新文件夹
安装依赖项
Android Gradle 插件(由 Android Studio 使用)可能不会自动安装依赖项。如果尚未安装,您将需要安装它们
-
在
build/android_gradle/app/build.gradle
或其模板文件bldsys/cmake/template/gradle/app.build.gradle.in
中查找已配置的版本 -
使用 Android Studio 安装它们或 sdkmanager 命令行工具。例如,要在 Linux 上安装 AGP 端口 CMake 3.22.1 和 NDK 版本 25.1.8937393,请执行以下操作
yes | ${your-sdk}/cmdline-tools/latest/bin/sdkmanager --licenses ${your-sdk}/cmdline-tools/latest/bin/sdkmanager --install "ndk;25.1.8937393" --channel=3 ${your-sdk}/cmdline-tools/latest/bin/sdkmanager --install "cmake;3.22.1" --channel=3
使用 Android Studio 构建
使用 Android Studio,你可以打开 build/android_gradle/build.gradle
项目,并从这里编译和运行该项目。建议使用最新的 Android Studio 版本。
如果你之前在你的开发系统上同意了许可协议,Android Studio 将在启动时自动安装 CMake 和 NDK,其版本配置在你的 build/android-gradle/build.gradle
中。否则(或如果安装失败),你需要手动安装所需的 CMake 和 NDK,有关详细步骤,请参考 官方说明。默认安装位置为:
-
$SDK-ROOT-DIR/ndk/$ndkVersion (NDK)。
-
$SDK-ROOT-DIR/cmake/$cmake-version (CMake)。
Android Studio 将使用上述默认位置,无需任何环境变量要求;如果你想将相同的 NDK 和 CMake 版本用于其他目的,你可以简单地将你的环境变量配置到这些位置。如果你设置了 NDK 和 CMake 环境变量,Android Studio 将使用它们而不是默认位置。