Summary: | Buffer for spa_pod_builder can be too small for some setup | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | oiiu19 |
Component: | Task Manager and Icons-Only Task Manager | Assignee: | Eike Hein <hein> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | alex, bharadwaj.raju777, bugseforuns, kde, nate, plasma-bugs, pmargeti34, till2.schaefer |
Priority: | NOR | ||
Version: | 5.23.3 | ||
Target Milestone: | 1.0 | ||
Platform: | Debian testing | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/plasma/plasma-workspace/commit/926f864756e5586f38574c166abdb5befa3dc771 | Version Fixed In: | 5.24 |
Sentry Crash Report: |
Description
oiiu19
2021-11-25 04:40:54 UTC
The actual offending line is https://invent.kde.org/plasma/plasma-workspace/-/blob/master/libtaskmanager/declarative/pipewiresourcestream.cpp#L263, not line 187. *** Bug 446553 has been marked as a duplicate of this bug. *** *** Bug 443719 has been marked as a duplicate of this bug. *** I can confirm oiiu19's findings. My bugreport https://bugs.kde.org/show_bug.cgi?id=446553 states the details. I've modified the source code as suggested by oiiu19 to increase the buffer size from 1024 to 4096 and that restored the ability to view task manager previews in a wayland session. I'm not saying 4096 buffer size is the optimal value here, it was the just first value that I tried and it worked. A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1262 oiiu19 if you give me your full name, I'll put you as the commit author. I would like to stay anonymous due to personal reasons. *** Bug 446709 has been marked as a duplicate of this bug. *** Guess this didn't get merged in time for 5.23.5? Git commit 926f864756e5586f38574c166abdb5befa3dc771 by Nate Graham, on behalf of David Edmundson. Committed on 06/01/2022 at 17:38. Pushed by ngraham into branch 'master'. [libtaskmanager] Increase buffer for pipewire format negotiation Libtaskmanager's buffer for spa_builder is too small on certain configurations. Because podBuilder->state.offset is never reset, the buffer space can run out when EGL returns a long list of dma_buf modifiers, causing PipeWire negotiation to fail. An example is when EGL returns 20 modifiers. There are 6 formats defined in pipewiresourcestream.cpp, for each format it will construct 2 frames, one with 21*8=168 bytes long of modifiers. The modifier lists for all frames will be 6*168=1008 bytes (only 16 bytes left of 1024 bytes), let alone other frames. M +1 -1 libtaskmanager/declarative/pipewiresourcestream.cpp https://invent.kde.org/plasma/plasma-workspace/commit/926f864756e5586f38574c166abdb5befa3dc771 |