User Tools

Site Tools


ubuntu:gpu:vulkan:vulkan_try_new_version

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ubuntu:gpu:vulkan:vulkan_try_new_version [2023/08/02 22:56] peterubuntu:gpu:vulkan:vulkan_try_new_version [2023/08/03 00:14] (current) peter
Line 1: Line 1:
 ====== Ubuntu - GPU - Vulkan - Vulkan Try New Version ====== ====== 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: [[https://github.com/KhronosGroup/Vulkan-Loader/blob/master/loader/LoaderAndLayerInterface.md|Vulkan Loader]]
  
 The upstream Vulkan loader source code is available in the following git repos: The upstream Vulkan loader source code is available in the following git repos:
Line 6: Line 13:
   * [[https://github.com/KhronosGroup/Vulkan-Loader|Vulkan Loader]]   * [[https://github.com/KhronosGroup/Vulkan-Loader|Vulkan Loader]]
   * [[https://github.com/KhronosGroup/Vulkan-Tools|Vulkan Tools]]   * [[https://github.com/KhronosGroup/Vulkan-Tools|Vulkan Tools]]
-    + 
 +---- 
 + 
 +==== 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: [[https://github.com/KhronosGroup/Vulkan-ValidationLayers|Vulkan Validation Layers]] 
 ----     ----    
 +
 +===== Build the loader =====
 +
 +<code bash>
 +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
 +python ../scripts/update_deps.py
 +cmake -C helper.cmake ..
 +cmake --build .
 +</code>
 +
 +or for tests...
 +
 +<code bash>
 +cmake -D UPDATE_DEPS=ON -D BUILD_TESTS=ON ..
 +cmake --build .
 +
 +ctest
 +</code>
 +
 +or for install...
  
 <code bash> <code bash>
Line 13: Line 54:
 git clone https://github.com/KhronosGroup/Vulkan-Loader.git git clone https://github.com/KhronosGroup/Vulkan-Loader.git
 cd Vulkan-Loader && mkdir build && cd build cd Vulkan-Loader && mkdir build && cd build
-../scripts/update_deps.py+python3 ../scripts/update_deps.py
 cmake -DCMAKE_BUILD_TYPE=Release -DVULKAN_HEADERS_INSTALL_DIR=$(pwd)/Vulkan-Headers/build/install .. cmake -DCMAKE_BUILD_TYPE=Release -DVULKAN_HEADERS_INSTALL_DIR=$(pwd)/Vulkan-Headers/build/install ..
 make -j8 make -j8
 </code> </code>
 +
 +<WRAP info>
 +**NOTE:**  Detailed instructions are available in [[https://github.com/KhronosGroup/Vulkan-Loader/blob/master/BUILD.md|Vulkan-Loader/BUILD.md]]
 +
 +  * Optionally instead of the 2 last lines use this instead: <code bash>
 +cmake -C helper.cmake ..
 +cmake --build .
 +</code>
 +
 +  * **CMAKE_BUILD_TYPE**:  can be **Release** or **Debug**.
 +  * **VULKAN_HEADERS_INSTALL_DIR**:  the absolute path to a Vulkan-Headers install directory must be provided.
 +  * **CMAKE_INSTALL_PREFIX**:  to customize the install location also modifies the loader search paths to include searching for layers in the specified install location.
 +    * The default value for CMAKE_INSTALL_PREFIX is /usr/local, which would be used if you do not specify CMAKE_INSTALL_PREFIX.
 +    * Setting CMAKE_INSTALL_PREFIX to /tmp/build causes the loader to search /tmp/build/etc/vulkan/explicit_layer.d and /tmp/build/share/vulkan/explicit_layer.d for the layer JSON files.
 +    * The loader also searches the "standard" system locations of /etc/vulkan/explicit_layer.d and /usr/share/vulkan/explicit_layer.d after searching the two locations under /tmp/build.
 +    * Then run make install as before, which will install the files in /tmp/build <code bash>sudo make install</code>
 +
 +</WRAP>
 +
  
 ---- ----
Line 44: Line 104:
 </code> </code>
  
 +----
  
 +===== Test =====
  
-====+<code bash> 
 +  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 
 +</code>
  
  
 +<code bash>
 +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
 +</code>
  
 +----
  
-===== Download latest Vulkan-Tools =====+===== Test =====
  
-  * https://github.com/KhronosGroup/Vulkan-Tools +A test suite for the Vulkan loader.
-  * https://github.com/KhronosGroup/Vulkan-Tools/tree/main. +
- +
-or+
  
 <code bash> <code bash>
-git clone https://github.com/KhronosGroup/Vulkan-Tools.git+ctest
 </code> </code>
  
----- +returns:
- +
-===== Extract to a temporary directory ===== +
- +
-Chdir to that temporary directory. +
- +
----- +
- +
-===== Build =====+
  
 <code bash> <code bash>
-sudo apt update && sudo apt install git build-essential libx11-xcb-dev libxkbcommon-dev libwayland-dev libxrandr-dev cmake+Test project /home/peter/Downloads/0/a/Vulkan-Loader-main/build 
 +        Start   1: Allocation.Instance 
 +  1/538 Test   #1: Allocation.Instance .............................................................................   Passed    0.01 sec 
 +        Start   2: Allocation.GetInstanceProcAddr 
 +  2/538 Test   #2: Allocation.GetInstanceProcAddr ..................................................................   Passed    0.01 sec 
 +        Start   3: Allocation.EnumeratePhysicalDevices 
 +  3/538 Test   #3: Allocation.EnumeratePhysicalDevices .............................................................   Passed    0.01 sec 
 +        Start   4: Allocation.InstanceAndDevice 
 +  4/538 Test   #4: Allocation.InstanceAndDevice ....................................................................   Passed    0.01 sec 
 +        Start   5: Allocation.InstanceButNotDevice 
 +  5/538 Test   #5: Allocation.InstanceButNotDevice .................................................................   Passed    0.01 sec 
 +        Start   6: Allocation.DeviceButNotInstance 
 +... 
 +... 
 +100% tests passed, 0 tests failed out of 538
  
-mkdir build +Total Test time (real) =  10.89 sec
-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+
 </code> </code>
- 
  
 ---- ----
  
-===== Test =====+===== References =====
  
 +https://developer.nvidia.com/embedded/vulkan
  
-<code bash> +https://github.com/KhronosGroup/Vulkan-Headers
-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+
  
 +https://github.com/KhronosGroup/Vulkan-Loader
  
-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+https://github.com/KhronosGroup/Vulkan-Tools
  
-LD_LIBRARY_PATH=/home/peter/Downloads/0/a/Vulkan-Tools-main/build/Vulkan-Loader/build/loader/ vulkaninfo --summary+https://github.com/KhronosGroup/Vulkan-Loader/blob/main/loader/LoaderAndLayerInterface.md
  
-LD_LIBRARY_PATH=/home/peter/Downloads/0/a/Vulkan-Tools-main/build/Vulkan-Loader/build/loadervulkaninfo | grep driver +https://github.com/KhronosGroup/Vulkan-Loader/blob/main/docs/LoaderInterfaceArchitecture.md
-</code>+
  
-----+https://github.com/KhronosGroup/Vulkan-Loader/blob/master/BUILD.md 
 + 
 +https://github.com/KhronosGroup/Vulkan-ValidationLayers 
 + 
 +https://www.khronos.org/conformance/adopters/conformant-products
  
-===== References ===== 
  
-https://developer.nvidia.com/embedded/vulkan 
ubuntu/gpu/vulkan/vulkan_try_new_version.1691016988.txt.gz · Last modified: 2023/08/02 22:56 by peter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki