The following options are used to change the build configuration
Choose whether to include a sample at build time.
ON
- Build SampleOFF
- Exclude Sample
Default: ON
Choose whether to build the samples.
ON
- Build All SamplesOFF
- Skip building Samples
Default: ON
Choose whether to build the tests
ON
- Build All TestsOFF
- Skip building Tests
Default: OFF
Rather than changing the working directory inside the IDE, VKB_SYMLINKS
will enable symlink creation pointing to the root directory which exposes the assets and outputs folders to the samples.
Default: OFF
Generate a build project for each application so that they can be run separately
Default: OFF
Enable Validation Layers
Default: OFF
Treat all warnings as errors
Default: ON
Most of the samples require 3D models downloaded from https://github.com/KhronosGroup/Vulkan-Samples-Assets as git submodule.
On Android, Gradle will run CMake which will sync assets to the device if there has been a change.
However, to sync them manually you may run the following command to ensure up to date assets are on the device:
adb push --sync assets /sdcard/Android/data/com.khronos.vulkan_samples/files/
adb push --sync shaders /sdcard/Android/data/com.khronos.vulkan_samples/files/
In order for performance data to be displayed, profiling needs to be enabled on the device. Some devices may disable it by default.
Profiling can be enabled via adb:
adb shell setprop security.perf_harden 0
Performance data is captured using HWCPipe. For details on this project and how to integrate it in your pipeline, visit: https://github.com/ARM-software/HWCPipe
- CMake v3.10+ (known to work with 3.10.2)
- Visual Studio 2017 or above
- clang-format-8
- CMake Options
- 3D models
Visual Studio comes with clang-format-6
which is incompatible with some of the styles we use in our .clang-format
file. It is recommended to point to a clang-format-8.exe
binary within the in-built clang formatter, or disable it and use a third party extension that is more up to date.
Go to the LLVM downloads page to get clang.
Please make sure, when running any sample, that you either:
- Enable Developer Mode
- Run Command Prompt or Visual Studio as administrator
Step 1.
The following command will generate the VS project
cmake -G"Visual Studio 15 2017 Win64" -H. -Bbuild/windows
Step 2.
Build the Visual Studio project
cmake --build build/windows --config Release --target vulkan_samples
Step 3.
Run the Vulkan Samples application
build\windows\app\bin\Release\AMD64\vulkan_samples.exe
- CMake v3.10+ (known to work with 3.10.2)
- C++14 Compiler (tested on GCC 7.3)
- CMake Options
- 3D models
sudo apt-get install cmake g++ xorg-dev libglu1-mesa-dev
Step 1.
The following command will generate the project
cmake -G "Unix Makefiles" -H. -Bbuild/linux -DCMAKE_BUILD_TYPE=Release
Step 2.
Build the project
cmake --build build/linux --config Release --target vulkan_samples -- -j4
Step 3.
Run the Vulkan Samples application to display the help message
./build/linux/app/bin/Release/x86_64/vulkan_samples --help
- CMake v3.10+ (known to work with 3.10.2)
- Command Line Tools (CLT) for Xcode
xcode-select --install
- Vulkan SDK
./install_vulkan.py
- CMake Options
- 3D models
Step 1.
The following command will generate the project
cmake -H. -Bbuild/mac -DCMAKE_BUILD_TYPE=Release
Step 2.
Build the project
cmake --build build/mac --config Release --target vulkan_samples -- -j4
Step 3.
Run the Vulkan Samples application to display the help message
./build/mac/app/bin/Release/x86_64/vulkan_samples --help
For all dependencies set the following environment variables.
- CMake v3.10+
- JDK 8+
JAVA_HOME=<SYSTEM_DIR>/java
- Android NDK r18+
ANDROID_NDK_ROOT=<WORK_DIR>/android-ndk
- Android SDK
ANDROID_HOME=<WORK_DIR>/android-sdk
- Gradle 5+
GRADLE_HOME=<WORK_DIR>/gradle
- CMake Options
- 3D models
- Performance data
Step 1.
Generate the gradle project using the internal script by running the following command
bldsys\scripts\generate_android_gradle.bat
./bldsys/scripts/generate_android_gradle.sh
A new folder will be created in the root directory at build\android_gradle
Step 2.
Build the project
cd build/android_gradle
gradle assembleDebug
Step 3.
You can now run the apk on a connected device
adb install build/outputs/apk/debug/vulkan_samples-debug.apk
Alternatively, you may import the
build/android_gradle
folder in Android Studio and run the project from here
If you are using a newer version of cmake then 3.13, you might get this error:
Execution failed for task ':externalNativeBuildDebug'. Expected output file at <PATH> for target <sample> but there was none
In this case, update the version of the gradle plugin in "bldsys/cmake/template/gradle/build.gradle.in" to 3.5.0, remove the content of build folder and repeat the build process from Step 1. This is known to work with Gradle 6.3 and NDK 20.0.55
If you are using Android Studio, you can simply do these changes after importing the build/android_gradle
folder, opening File->Project Structure, and doing the following changes:
On the Project tab, change the Android Gradle Plugin version to 3.5.0 and the Gradle version to 6.3.(this also requires NDK 20.0.55)
Step 1.
When generating cmake set the VKB_ENTRYPOINTS
flag to ON
cmake -B"build" -H"." -DVKB_ENTRYPOINTS=ON
Step 2.
Set the target to <samplename>_app
. For example:
cmake --build build --config Debug --target afbc_app
Step 2.
In the Solution Explorer there now is an Entrypoints folder. Select the <sample>_app
you would like to run and set it as the Start Up Project