This is an old revision of the document!
Table of Contents
Ubuntu - GPU - Vulkan - Vulkan Try New Version
Vulkan applications interact with Vulkan drivers through the loader.
- The loader is responsible for supporting multiple GPUs and their drivers.
- For supporting the latest Vulkan API version, the loader also needs to be the matching version.
More information about the loader is available here: Vulkan Loader
The upstream Vulkan loader source code is available in the following git repos:
Vulkan Validation Layers
The loader also supports the Vulkan validation layers, which are optional components that augment the Vulkan system.
- Layers can intercept, evaluate, and modify existing Vulkan functions on their way from the application down to the hardware.
- Layers are a critical component of developing correct Vulkan applications.
- More information about the validation layers is available here: Vulkan Validation Layers
sudo apt-get update && sudo apt-get install git build-essential libx11-xcb-dev libxkbcommon-dev libwayland-dev libxrandr-dev cmake git clone https://github.com/KhronosGroup/Vulkan-Loader.git cd Vulkan-Loader && mkdir build && cd build ../scripts/update_deps.py cmake -DCMAKE_BUILD_TYPE=Release -DVULKAN_HEADERS_INSTALL_DIR=$(pwd)/Vulkan-Headers/build/install .. make -j8
NOTE: Detailed instructions are available in Vulkan-Loader/BUILD.md
Use the newly built loader
To use the newly built loader:
export LD_LIBRARY_PATH=$(pwd)/loader
Install (Optional)
The newly built loader can be installed to /usr/local/lib by running
sudo make install
Refresh the system loader search cache.
sudo ldconfig
====
Download latest Vulkan-Tools
or
git clone https://github.com/KhronosGroup/Vulkan-Tools.git
Extract to a temporary directory
Chdir to that temporary directory.
Build
sudo apt update && sudo apt install git build-essential libx11-xcb-dev libxkbcommon-dev libwayland-dev libxrandr-dev cmake mkdir build cd build ../scripts/update_deps.py cmake -DCMAKE_BUILD_TYPE=Release -DVULKAN_HEADERS_INSTALL_DIR=$(pwd)/Vulkan-Headers/build/install .. make -j8 or cmake -C helper.cmake .. cmake --build . To use the newly built loader: export LD_LIBRARY_PATH=$(pwd)/loader or VK_ICD_FILENAMES=/home/peter/Downloads/0/a/Vulkan-Tools-main/build/icd/VkICD_mock_icd.json vulkaninfo --summary VK_ICD_FILENAMES=/home/peter/Downloads/0/a/Vulkan-Tools-main/build/icd/VkICD_mock_icd.json /home/peter/Downloads/0/a/Vulkan-Tools-main/build/vulkaninfo/vulkaninfo --summary VK_ICD_FILENAMES=/home/peter/Downloads/0/a/Vulkan-Tools-main/build/icd/VkICD_mock_icd.json /home/peter/Downloads/0/a/Vulkan-Tools-main/build/vulkaninfo/vulkaninfo | grep driver
Test
LD_LIBRARY_PATH=/home/peter/Downloads/0/a/Vulkan-Tools-main/build/Vulkan-Loader/build/loader/ VK_ICD_FILENAMES=/home/peter/Downloads/0/a/Vulkan-Tools-main/build/icd/VkICD_mock_icd.json /home/peter/Downloads/0/a/Vulkan-Tools-main/build/vulkaninfo/vulkaninfo --summary LD_LIBRARY_PATH=/home/peter/Downloads/0/a/Vulkan-Tools-main/build/Vulkan-Loader/build/loader/ VK_ICD_FILENAMES=/home/peter/Downloads/0/a/Vulkan-Tools-main/build/icd/VkICD_mock_icd.json /home/peter/Downloads/0/a/Vulkan-Tools-main/build/vulkaninfo/vulkaninfo --summary LD_LIBRARY_PATH=/home/peter/Downloads/0/a/Vulkan-Tools-main/build/Vulkan-Loader/build/loader/ vulkaninfo --summary LD_LIBRARY_PATH=/home/peter/Downloads/0/a/Vulkan-Tools-main/build/Vulkan-Loader/build/loader/ vulkaninfo | grep driver
References
https://developer.nvidia.com/embedded/vulkan
https://github.com/KhronosGroup/Vulkan-Headers
https://github.com/KhronosGroup/Vulkan-Loader
https://github.com/KhronosGroup/Vulkan-Tools
https://github.com/KhronosGroup/Vulkan-Loader/blob/main/loader/LoaderAndLayerInterface.md
https://github.com/KhronosGroup/Vulkan-Loader/blob/main/docs/LoaderInterfaceArchitecture.md
https://github.com/KhronosGroup/Vulkan-Loader/blob/master/BUILD.md