Bug 464294 - Desktop icon drag and drop lagging behind cursor
Summary: Desktop icon drag and drop lagging behind cursor
Status: RESOLVED UPSTREAM
Alias: None
Product: plasmashell
Classification: Plasma
Component: general (show other bugs)
Version: 5.26.5
Platform: Debian unstable Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-01-14 18:41 UTC by Ilan
Modified: 2023-01-14 19:26 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ilan 2023-01-14 18:41:10 UTC
SUMMARY

When dragging files/folders to a different spot on the desktop the icon lag behind the mouse and CPU usage for plasmashell, Xorg and kwin_x11 is very high. Same happens when moving icons using Dolphin.


STEPS TO REPRODUCE
1. Drag and drop icon

OBSERVED RESULT
Very slow mouse movement. Icon lags behind mouse. High CPU usage

EXPECTED RESULT
Icon follows mouse and CPU stays low

SOFTWARE/OS VERSIONS
Version
=======
KWin version: 5.26.5
Qt Version: 5.15.7
Qt compile version: 5.15.7
XCB compile version: 1.15

Operation Mode: X11 only


ADDITIONAL INFORMATION
strace shows increased futex usage:

poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{iov_base="\3\0\2\0\241\0\0\1", iov_len=8}], 1) = 8
futex(0x5590b4bdee18, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x5590b4bdee18, FUTEX_WAKE_PRIVATE, 1) = 0

gdb bt for the most frequent address (0x5590b4bdee18) for futex is as follows:

Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007f54c951b0af in poll () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt 0x5590b4bdee18
#0  0x00007f54c951b0af in poll () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f54c771e9ae in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f54c771eacc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f54c99098b6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f54c98b024b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f54c98b83b6 in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00005590b2e30c6c in ?? ()
#7  0x00007f54c944618a in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#8  0x00007f54c9446245 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#9  0x00005590b2e30d81 in ?? ()
Comment 1 Ilan 2023-01-14 19:26:30 UTC
This appears to be a QT bug described in this ticket: https://bugreports.qt.io/browse/QTBUG-98048