Vulkan FIFO (vulkan’s vsync presentation mode) is broken on 32.3.X+
For usecases where this is required 32.3.1 is the highest BSP where it works (also only has Vulkan 1.1 compared to Vulkan 1.2 in 32.4.X+).
Vulkan FIFO (vulkan’s vsync presentation mode) is broken on 32.3.X+
For usecases where this is required 32.3.1 is the highest BSP where it works (also only has Vulkan 1.1 compared to Vulkan 1.2 in 32.4.X+).
Hi,
The latest Jetpack release for Jetson Nano is 4.6.4(r32.7.4). Can you upgrade to the version and try?
I wrote 32.4…X+ to represent all versions 32.4.1 to 32.7.4
The issue has been tested and occurs on all versions in that range.
Hi,
Thanks for the clarification. Please share the steps for replicating the issue. We may not be able to check it further on Jetson Nano, and would like to check whether it is an issue on Orin series/Jetpack 6.
And if there is quick fix for Jetson Nano, please share it so that other users can avoid hitting this.
On further investigation I am able to reproduce the issue on 32.3.1 as well.
On Jetson Nano (32.3.1-32.7.4) the issue occurs on all Vulkan applications that use FIFO to prevent tearing (which is what is broken because it still tears). This assumes that the DE in use is properly disabling its compositor or unredirecting the window (gnome unredirects, KDE plasma disables its compositor).
I personally use the Vulkan test suite to easily replicate the issue GitHub - SaschaWillems/Vulkan: Examples and demos for the new Vulkan API. It is easier to reproduce when there is a high gpu load.
Build Instructions:
sudo apt install build-essential cmake libvulkan-dev
git clone --recursive https://github.com/SaschaWillems/Vulkan.git
cd Vulkan
mkdir build
cd build
cmake ..
make -j$(nproc)
Running vulkan gears in fullscreen with FIFO
./bin/gears -f --vsync
GNOME should automatically unredirect this window, but I use KDE Plasma personally and it won’t disable the compositor without the _NET_WM_BYPASS_COMPOSITOR=1
window manager hint. So I just launch any other application that sets that hint to get the compositor disabled or manually disable it with qdbus org.kde.KWin /Compositor suspend
Hi,
We try to build the sample on Jetson Nano and hits the error:
nvidia@dhcp-10-19-106-218:~/Vulkan/build2$ make
[ 10%] Built target base
[ 11%] Linking CXX executable ../bin/viewportarray
../../libs/vulkan/libvulkan.so: error adding symbols: File in wrong format
collect2: error: ld returned 1 exit status
examples/CMakeFiles/viewportarray.dir/build.make:100: recipe for target 'bin/vie
wportarray' failed
make[2]: *** [bin/viewportarray] Error 1
CMakeFiles/Makefile2:316: recipe for target 'examples/CMakeFiles/viewportarray.d
ir/all' failed
make[1]: *** [examples/CMakeFiles/viewportarray.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
Not sure if you have idea about it. If yes, please share your experience.
Then we try to build it on TX2, copy the built binary to Jetson Nano and run the command:
nvidia@dhcp-10-19-106-218:~/Vulkan/build$ ./bin/gears -f --vsync
nvdc: start nvdcEventThread
Hello DaneLLL the error compilation in jetson nano probably You are not installed libvulkan-dev in you Jetson nano? and in TX2 device is installed
Seems in you jetson nano are linked with wrong lib symbol /libs/vulkan/libvulkan.so in repo github it’s for x86-64 so why are failed.
As previously stated, the issue becomes very apparent under higher GPU loading. So run some other graphically intensive application in the background.
You may find it easier to guarantee your desktop environment is not compositing the screen itself by running the application directly with startx from a tty
The tears usually appear higher up on the display, so make sure to zoom into the gears (hold right click and move mouse in Y)