Bug 497849 - Vulkan Rendering on Nvidia GPU
Summary: Vulkan Rendering on Nvidia GPU
Status: RESOLVED UPSTREAM
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-crash (other bugs)
Version First Reported In: 6.2.4
Platform: Arch Linux Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-12-24 00:06 UTC by Jakub
Modified: 2024-12-25 11:07 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jakub 2024-12-24 00:06:39 UTC
SUMMARY
After switching to vulkan based rendering on Nvidia GPU, attempting start most application, close a widget panel, or unlock the system, causes plasma shell to crash. Sometimes it recovers, sometimes it crashes multiple times in a row and stops recovering. 

Open GL and software rendering seems to be working fine. 

STEPS TO REPRODUCE
1. Switch to Vulkan Rendering using Plasma Renderer
2. Start plasma wayland
3. Launch an application

SOFTWARE/OS VERSIONS
Linux: EndeavourOS (should be mostly same as Arch)
Linux/KDE Plasma: 6.2.4
KDE Plasma Version: 6.2.4
KDE Frameworks Version: 6.9.0
Qt Version: 6.8.1
GPU: NVIDIA RTX A4000 Mobile
NVIDIA Drivers: 565.77-8

ADDITIONAL INFORMATION

#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
        tid = <optimized out>
        ret = 0
        pd = <optimized out>
        old_mask = {__val = {0}}
        ret = <optimized out>
#1  0x00007ffff4aa5463 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:78
No locals.
#2  0x00007ffff4a4c120 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#3  0x00007ffff4a334c3 in __GI_abort () at abort.c:79
        save_stage = 1
        act = {__sigaction_handler = {sa_handler = 0x20, sa_sigaction = 0x20}, sa_mask = {__val = {2334102079119979635, 11430877558129, 0, 0, 140736951488704, 0, 24, 140736951484464, 130896, 140736951488688, 
              140737488343312, 140737180067904, 140737298255790, 0, 12413263439408765696, 140737180067952}}, sa_flags = -536856360, sa_restorer = 0x555555669b60}
#4  0x00007ffff7c78734 in wl_abort (fmt=fmt@entry=0x7ffff7c7d7f0 "Tried to add event to destroyed queue\n") at ../wayland-1.23.1/src/wayland-util.c:476
        argp = {{gp_offset = 8, fp_offset = 48, overflow_arg_area = 0x7fffed9fe930, reg_save_area = 0x7fffed9fe870}}
#5  0x00007ffff7c7ad86 in queue_event (display=<optimized out>, len=56) at ../wayland-1.23.1/src/wayland-client.c:1617
        p = {349, 524288}
        size = 8
        message = <optimized out>
        time = <optimized out>
        id = <optimized out>
        closure = 0x7fffe0003800
        opcode = <optimized out>
        proxy = 0x7ffeb43158b0
        queue = <optimized out>
        tp = {tv_sec = 0, tv_nsec = 93823560581120}
        num_zombie_fds = <optimized out>
        p = <optimized out>
        id = <optimized out>
        opcode = <optimized out>
        size = <optimized out>
        proxy = <optimized out>
        closure = <optimized out>
        message = <optimized out>
        queue = <optimized out>
        tp = <optimized out>
        time = <optimized out>
        num_zombie_fds = <optimized out>
        zombie = <optimized out>
#6  read_events (display=0x555555669b60) at ../wayland-1.23.1/src/wayland-client.c:1713
        total = <optimized out>
        rem = 56
        size = <optimized out>
        serial = <optimized out>
        total = <optimized out>
        rem = <optimized out>
        size = <optimized out>
        serial = <optimized out>
#7  wl_display_read_events (display=0x555555669b60) at ../wayland-1.23.1/src/wayland-client.c:1796
        ret = <optimized out>
#8  0x00007ffff616d5f1 in QtWaylandClient::EventThread::run (this=0x555555698210) at /usr/src/debug/qt6-wayland/qtwayland/src/client/qwaylanddisplay.cpp:191
--Type <RET> for more, q to quit, c to continue without paging--
        fds = {{fd = 3, events = 1, revents = 1}, {fd = 8, events = 1, revents = 0}}
        pipe = <optimized out>
#9  0x00007ffff52d90cd in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:354
        thr = <optimized out>
        data = <optimized out>
        thr = <optimized out>
        data = <optimized out>
        locker = <optimized out>
#10 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:290
No locals.
#11 QThreadPrivate::start (arg=0x555555698210) at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qthread_unix.cpp:318
        __clframe = {__cancel_routine = <optimized out>, __cancel_arg = 0x555555698210, __do_it = 1, __cancel_type = <optimized out>}
        thr = 0x555555698210
        data = <optimized out>
#12 0x00007ffff4aa339d in start_thread (arg=<optimized out>) at pthread_create.c:447
        ret = <optimized out>
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737180071616, 2109003911650956936, 140737180071616, -344, 22, 140737488343312, 2109003911629985416, 2108983739652855432}, mask_was_saved = 0}}, priv = {
            pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#13 0x00007ffff4b2849c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
Comment 1 David Edmundson 2024-12-25 11:07:48 UTC
Try again with Qt 6.9 when released.