How to configure for Vulkan?
-
Hello,
I want to use 5.10 with Vulkan support. I couldn't find any information is it available in prebuilt version for the Linux, but since the provided example doesn't work out of the box I assume I need to build qt myself. When I call
configure
I get:Qt Gui: Vulkan ................................. no
Though I have
VULKAN_SDK
defined andPATH
contains the path to the SDK as well.Here it tells about Windows and Android but no any word about Linux.
I tried to enable the feature while configuring with
../configure -feature-vulkan
(though very confusing -../configure -list-features
doesn't lists vulkan feature at all) and got the output:ERROR: Feature 'vulkan' was enabled, but the pre-condition 'libs.vulkan' failed. Check config.log for details.
The file
config.log
unfortunately is not very informative:Command line: -feature-vulkan
-
Hi,
You should add the -v option to configure. It should give you more information about what is going on regarding Vulkan.
-
@SGaist
You're right, it helped a little. Now I have the output:Checking for Vulkan... Trying source 0 (type pkgConfig) of library vulkan ... + /usr/bin/pkg-config --exists --silence-errors vulkan pkg-config did not find package. => source produced no result. Trying source 1 (type makeSpec) of library vulkan ... + cd /home/nc/Qt/5.10.1/Src/qt5.10.1/config.tests/qpa/vulkan && /home/nc/Qt/5.10.1/Src/qt5.10.1/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared use_gold_linker warn_off console single_arch" /home/nc/Qt/5.10.1/Src/qtbase/config.tests/qpa/vulkan + cd /home/nc/Qt/5.10.1/Src/qt5.10.1/config.tests/qpa/vulkan && MAKEFLAGS= /usr/bin/make > g++ -c -pipe -O2 -std=gnu++11 -w -fPIC -I/home/nc/Qt/5.10.1/Src/qtbase/config.tests/qpa/vulkan -I. -I/home/nc/Qt/5.10.1/Src/qtbase/mkspecs/linux-g++ -o vulkan.o /home/nc/Qt/5.10.1/Src/qtbase/config.tests/qpa/vulkan/vulkan.cpp > /home/nc/Qt/5.10.1/Src/qtbase/config.tests/qpa/vulkan/vulkan.cpp:42:27: fatal error: vulkan/vulkan.h: No such file or directory > compilation terminated. > Makefile:170: recipe for target 'vulkan.o' failed > make: *** [vulkan.o] Error 1 => source failed verification. test config.gui.libraries.vulkan FAILED
First thing to notice - the configurator tries to search for the package, but I didn't install Vulkan via package, I just downloaded SDK and ran it manually. Next I see that path to Vulkan headers is undefined. I added it to the
PATH
but without luck. How else can I provide-I
gcc flag to generate correct makefile? -
PATH is for application discovery, it has nothing to do with header files.
You can use the
-I
option of configure to add additional search paths. Beware that contrary to the compiler option, you need to leave a space between the option and the path you want to give. You'll likely also need to use the-L
option in order to find the Vulkan libraries. -
@SGaist thank you, you're right and I need to read help more carefully.
So I successfully configured and output gives me:
Qt Gui: Vulkan ................................. yes
I build the library with
make
, next installed it withmake install
but still can't make it work. This time it tells me/usr/local/Qt-5.10.1/include/QtGui/QVulkanFunctions:1: error: qvulkanfunctions.h: No such file or directory
Indeed this file is not there. But why? For example,
qvulkanwindow.h
was installed, andQVulkanFunctions
too. But what's wrong withqvulkanfunctions.h
?Upd: I manually copied this header to installation folder and finally was able to compile the example. Looks like somebody forgot to add this header to installation file list.
-
Did you re-run configure from a clean state ?
What I recommend is to use out of source builds so if you need to start over you just nuke the folder you use and start from fresh. That way you keep the sources clean.
-
Yes, did it twice. Looks like an error in generated make file. Anyway, everything working now, thank you.
-
Hi, I have same problem, I don't know how to enable vulkan in QT GUI.
When run configurate said:
Qt Gui: Vulkan ................................. no
Also, when I run the test (/usr/local/Qt/5.10.1/Src/config.tests/qpa/vulkan) compiling good, but throw core exception the ./vulkan generate.
I have install Vulkan sdk in /usr/local/VulkanSDK/1.0.68.0/x86_64 and enviroment:
VULKAN_SDK=/usr/local/VulkanSDK/1.0.68.0/x86_64 VK_LAYER_PATH=/usr/local/VulkanSDK/1.0.68.0/x86_64/etc/explicit_layer.d PATH=/usr/local/VulkanSDK/1.0.68.0/x86_64/bin:/home/jose/bin:/home/jose/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/VulkanSDK/1.0.68.0/x86_64:/snap/bin
And when I open the Samples in QT (/usr/local/Qt/Examples/Qt-5.10.1/vulkan/hellovulkanwindow) build error in:
/usr/local/Qt/Examples/Qt-5.10.1/vulkan/hellovulkanwindow/hellovulkanwindow.cpp:51: In file included from ../../vulkan/hellovulkanwindow/hellovulkanwindow.cpp:51:0: Line 51 is: #include "hellovulkanwindow.h"
Thank.
-
You need to tell configure where the sdk is. Please read the comment from SGaist.
-
@nikitablack How? I don't use QT before.
-
You need to run
configure
and pass arguments, for example:configure -I $VULKAN_SDK/include -L $VULKAN_SDK/lib -v -feature-vulkan
-
@SGaist Since I tried to run the example project
Hello Vulkan Cubes
but it just signaled this error:Failed to load vulkan: Cannot load library vulkan: (vulkan: cannot open shared object file: No such file or directory) initInstance: No Vulkan library available Failed to create platform Vulkan instance Failed to create Vulkan instance: 0
Regarding the latest status of Vulkan feature supporting in the prebuilt version for Linux, do we have it already enabled for Qt 5.15?
Thank you.
-
From your error message do you have the Vulcan dependencies installed on your system ?
-
Yeap, this is my
vulkaninfo
command output and I also haveVULKAN_SDK
set in QtCreator environment variables, thus I could build the example fine, but it just failed at runtime:
https://drive.google.com/file/d/1pd9AGdC88KiN03e7bZzonkifd2jsRlZx/view?usp=sharing
This is my graphics card info:+-----------------------------------------------------------------------------+ | NVIDIA-SMI 455.26.02 Driver Version: 455.26.02 CUDA Version: 11.1 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 GeForce RTX 208... Off | 00000000:01:00.0 On | N/A | | 35% 32C P8 24W / 260W | 1209MiB / 11016MiB | 6% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | 0 N/A N/A 2256 G /usr/lib/xorg/Xorg 568MiB | | 0 N/A N/A 2579 G /usr/bin/gnome-shell 155MiB | | 0 N/A N/A 3404 G ...AAAAAAAAA= --shared-files 88MiB | | 0 N/A N/A 3553 G ...AAAAAAAAA= --shared-files 390MiB | | 0 N/A N/A 5623 G ...s/QtCreator/bin/qtcreator 3MiB | +-----------------------------------------------------------------------------+
-
What did you install on your system for the Vulkan part ?
-
I just have the Vulkan SDK in a local folder and install this NVIDIA driver
Linux 455.26.02
, which supportsVK_KHR_ray_tracing
extension from this link:
https://developer.nvidia.com/vulkan-driver -
It would be nice to have more details about the SDK like the version you have, the way you got it and installed it, etc.
-
Yeah, so my Vulkan SDK version is
1.2.154.0
from their official page:
https://vulkan.lunarg.com/sdk/home#linuxI just extracted to a folder then set
VULKAN_SDK
to its path.
I actually tried with two of my latest current Linux NVIDIA driver as the proprietary455
and the Beta one455.26.2
.So I doubt that in order to run Vulkan examples by Qt, should I install the Vulkan using
sudo apt install vulkan-sdk
, which I might dread will conflict with the NVIDIA driver. I remember having some bad experience with it. -
@Tadinu said in How to configure for Vulkan?:
Failed to load vulkan: Cannot load library vulkan: (vulkan: cannot open shared object file: No such file or directory)
Have you try setting updating LD_LIBRARY_PATH variable to reflect the proper location of the Vulkan library(ies)?