ubuntu:gpu:vulkan:vulkan_try_new_version

This is an old revision of the document!


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

Build the loader

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

  • Optionally instead of the 2 last lines use this instead:
    cmake -C helper.cmake ..
    cmake --build .
    <code>
     
    </WRAP>
     
     
    ----
     
    ====== Use the newly built loader ======
     
    To use the newly built loader:
     
    <code bash>
    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

https://github.com/KhronosGroup/Vulkan-ValidationLayers

https://www.khronos.org/conformance/adopters/conformant-products

ubuntu/gpu/vulkan/vulkan_try_new_version.1691017855.txt.gz · Last modified: 2023/08/02 23:10 by peter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki