Qt Vulkan examples crash in WSL2
-
I'm using Rocky 9 under WSL2 (llvmpipe rasterizer). The subject symptoms don't happen on Windows or in RHEL 9 under VMware.
To reproduce:
- Use qmake to setup the hellovulkanwidget example and then build.
- Run hellovulkanwidget and resize the window. If you keep at it for a while, the vulkan surface will stop rendering while the rest of the application continues to resize normally.
- Close the application. It will segfault.
I suspect that the issue is with vulkan, but I thought it was worth a try.
Strange rendering issues are actually common to all the vulkan examples on WSL2.
-
Hi,
You should provide more details:
- version of Qt
- version of Windows
- version of Rocky 9
- version of Vulkan
- copy of the stack trace
-
Windows 11 23H2
Rocky/RHEL 9.5
Qt: 6.6.2
Vulkan (mesa-vulkan-drivers) 24.1.2
Windows NVIDIA driver 32.0.15.6103
Stack trace follows:#0 __pthread_kill_implementation (threadid=<optimized out>,
signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1 0x00007ffff6346ad3 in __pthread_kill_internal (signo=6,
threadid=<optimized out>) at pthread_kill.c:78
#2 0x00007ffff62f9686 in __GI_raise (sig=sig@entry=6)
at ../sysdeps/posix/raise.c:26
#3 0x00007ffff62e3833 in __GI_abort () at abort.c:79
#4 0x00007ffff62e4170 in __libc_message (fmt=<optimized out>)
at ../sysdeps/posix/libc_fatal.c:150
#5 0x00007ffff633aaab in __GI___libc_fatal (
message=message@entry=0x7ffff6478850 "The futex facility returned an unexpected error code.\n") at ../sysdeps/posix/libc_fatal.c:159
#6 0x00007ffff6341aa8 in futex_fatal_error ()
at ../sysdeps/nptl/futex-internal.h:87
#7 futex_wait (private=<optimized out>, expected=2,
futex_word=0x7ffff6341aa8 <__GI___lll_lock_wait+88>)
at ../sysdeps/nptl/futex-internal.h:162
#8 __GI___lll_lock_wait (futex=futex@entry=0x673d7a, private=<optimized out>)
at lowlevellock.c:50
#9 0x00007ffff6348112 in lll_mutex_lock_optimized (mutex=0x673d7a)
at pthread_mutex_lock.c:49
#10 ___pthread_mutex_lock (mutex=0x673d7a) at pthread_mutex_lock.c:94
#11 0x00007ffff2b8b0ea in wl_display_flush ()
from /lib64/libwayland-client.so.0
#12 0x00007fffdd23693c in wsi_wl_swapchain_chain_free ()
from /usr/lib64/libvulkan_lvp.so
#13 0x00007fffdd236f50 in wsi_wl_swapchain_destroy ()
from /usr/lib64/libvulkan_lvp.so
#14 0x00007fffda4328c0 in vulkan_layer_chassis::DestroySwapchainKHR(VkDevice_T*, VkSwapchainKHR_T*, VkAllocationCallbacks const*) ()
from /lib64/libVkLayer_khronos_validation.so
#15 0x00007ffff75bff98 in QVulkanWindowPrivate::releaseSwapChain (
this=0x68dfa0)
at /usr/src/debug/qt6-qtbase-6.6.2-1.el9.x86_64/src/gui/vulkan/qvulkanwindow.cpp:1507
#16 QVulkanWindowPrivate::releaseSwapChain (this=0x68dfa0)
at /usr/src/debug/qt6-qtbase-6.6.2-1.el9.x86_64/src/gui/vulkan/qvulkanwindow.cpp:1416
#17 0x00007ffff75c7ef6 in QVulkanWindow::event (this=0x4e6ac0,
e=0x7fffffffd320)
at /usr/src/debug/qt6-qtbase-6.6.2-1.el9.x86_64/src/gui/vulkan/qvulkanwindow.cpp:1572
#18 0x00007ffff79a8d26 in QApplicationPrivate::notify_helper (
this=<optimized out>, receiver=0x4e6ac0, e=0x7fffffffd320)
at /usr/src/debug/qt6-qtbase-6.6.2-1.el9.x86_64/src/widgets/kernel/qapplication.cpp:3296
#19 0x00007ffff69d1b58 in QCoreApplication::notifyInternal2 (
receiver=0x4e6ac0, event=0x7fffffffd320)
at /usr/src/debug/qt6-qtbase-6.6.2-1.el9.x86_64/src/corelib/kernel/qcoreapplication.cpp:1121
#20 0x00007ffff7118d35 in QWindowPrivate::destroy (this=0x68dfa0)
at /usr/src/debug/qt6-qtbase-6.6.2-1.el9.x86_64/src/gui/kernel/qwindow.cpp:2054
#21 0x00007ffff7118e6d in QWindowPrivate::destroy (this=0x6966c0)
at /usr/src/debug/qt6-qtbase-6.6.2-1.el9.x86_64/src/gui/kernel/qwindow.cpp:2035
#22 0x00007ffff7119314 in QWindow::destroy (this=this@entry=0x697530)
at /usr/src/debug/qt6-qtbase-6.6.2-1.el9.x86_64/src/gui/kernel/qwindow.cpp:2021
#23 0x00007ffff711bbbf in QWindow::event (this=0x697530, ev=0x7fffffffd550)
at /usr/src/debug/qt6-qtbase-6.6.2-1.el9.x86_64/src/gui/kernel/qwindow.cpp:2544
#24 0x00007ffff79a8d26 in QApplicationPrivate::notify_helper (
this=<optimized out>, receiver=0x697530, e=0x7fffffffd550)
at /usr/src/debug/qt6-qtbase-6.6.2-1.el9.x86_64/src/widgets/kernel/qapplication.cpp:3296
#25 0x00007ffff69d1b58 in QCoreApplication::notifyInternal2 (
receiver=0x697530, event=0x7fffffffd550)
at /usr/src/debug/qt6-qtbase-6.6.2-1.el9.x86_64/src/corelib/kernel/qcoreapplication.cpp:1121
#26 0x00007ffff70bdd41 in QGuiApplicationPrivate::processCloseEvent (
e=0x7fffe80069a0)
at /usr/src/debug/qt6-qtbase-6.6.2-1.el9.x86_64/src/gui/kernel/qguiapplication.cpp:2743
#27 QGuiApplicationPrivate::processCloseEvent (e=0x7fffe80069a0)
at /usr/src/debug/qt6-qtbase-6.6.2-1.el9.x86_64/src/gui/kernel/qguiapplication.cpp:2731
#28 0x00007ffff711eb6c in QWindowSystemInterface::sendWindowSystemEvents (
flags=...)
at /usr/src/debug/qt6-qtbase-6.6.2-1.el9.x86_64/src/gui/kernel/qwindowsysteminterface.cpp:1109
#29 0x00007ffff75cbba4 in userEventSourceDispatch (source=<optimized out>)
at /usr/src/debug/qt6-qtbase-6.6.2-1.el9.x86_64/src/gui/platform/unix/qeventdispatcher_glib.cpp:38
#30 0x00007ffff6029f4f in g_main_dispatch (context=0x7fffec005010)
at ../glib/gmain.c:3364
#31 g_main_context_dispatch (context=0x7fffec005010) at ../glib/gmain.c:4079
#32 0x00007ffff607f268 in g_main_context_iterate.constprop.0 (
context=context@entry=0x7fffec005010, block=block@entry=1,
dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4155
#33 0x00007ffff6027713 in g_main_context_iteration (context=0x7fffec005010,
may_block=1) at ../glib/gmain.c:4220
#34 0x00007ffff6c8566e in QEventDispatcherGlib::processEvents (this=0x44fd10,
flags=...)
at /usr/src/debug/qt6-qtbase-6.6.2-1.el9.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:393
#35 0x00007ffff69de1eb in QEventLoop::exec (this=this@entry=0x7fffffffd810,
flags=..., flags@entry=...)
at /usr/src/debug/qt6-qtbase-6.6.2-1.el9.x86_64/src/corelib/global/qflags.h:34
#36 0x00007ffff69da3f6 in QCoreApplication::exec ()
at /usr/src/debug/qt6-qtbase-6.6.2-1.el9.x86_64/src/corelib/global/qflags.h:74
#37 0x000000000040faad in main (argc=1, argv=0x7fffffffdb68) at main.cpp:57