| Summary: | KWin Debug Console crashes KWin in KWin::SurfacePixmap::setBuffer() with certain scaling percentages | ||
|---|---|---|---|
| Product: | [Plasma] kwin | Reporter: | madness742 |
| Component: | general | Assignee: | KWin default assignee <kwin-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | crash | CC: | bugs.kde.org, nate |
| Priority: | NOR | Keywords: | drkonqi |
| Version First Reported In: | 6.3.0 | ||
| Target Milestone: | --- | ||
| Platform: | Arch Linux | ||
| OS: | Linux | ||
| Latest Commit: | https://invent.kde.org/plasma/kwin/-/commit/839a29a2f8719e4c4b55b43142c666b34a7a0f3a | Version Fixed/Implemented In: | 6.3.2 |
| Sentry Crash Report: | https://crash-reports.kde.org/organizations/kde/issues/133897/events/454e4bd5f8794f3a80939ca4cb04889b/ | ||
| Attachments: | New crash information added by DrKonqi | ||
|
Description
madness742
2025-02-16 04:30:25 UTC
Created attachment 178420 [details]
New crash information added by DrKonqi
DrKonqi auto-attaching complete backtrace.
Does kwin crash if you have one output? I tried setting that scale factor, but kwin doesn't crash for me also, what's your output layout? qdbus org.kde.KWin /KWin supportInformation (In reply to Vlad Zahorodnii from comment #2) > Does kwin crash if you have one output? > > I tried setting that scale factor, but kwin doesn't crash for me Ah, nvm. A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/7172 Git commit 324852e91b3692a1f528d81f67ca35d063c84960 by Vlad Zahorodnii. Committed on 18/02/2025 at 00:00. Pushed by vladz into branch 'master'. Fix GraphicsBuffer tracking in InternalWindow If markAsMapped() is called, the window may be resized, for example due to window placement. If that happens, the QWindow may repaint itself immediately and potentially drop the swapchain; it all will occur recursively in markAsMapped(). If there is a nested present(), i.e. present() -> markAsMapped() -> present(), the graphics buffer reference in the outer present() can be invalid markAsMapped(); m_graphicsBufferREf = frame.buffer; // frame.buffer can be deleted now In order to prevent accessing destroyed graphics buffers, this change makes the mark as mapped step last. As a long term measure, we need to reconsider how geometry updates flow. SENTRY: KWIN-8FZ M +3 -1 src/internalwindow.cpp https://invent.kde.org/plasma/kwin/-/commit/324852e91b3692a1f528d81f67ca35d063c84960 Git commit 839a29a2f8719e4c4b55b43142c666b34a7a0f3a by Vlad Zahorodnii. Committed on 18/02/2025 at 01:04. Pushed by vladz into branch 'Plasma/6.3'. Fix GraphicsBuffer tracking in InternalWindow If markAsMapped() is called, the window may be resized, for example due to window placement. If that happens, the QWindow may repaint itself immediately and potentially drop the swapchain; it all will occur recursively in markAsMapped(). If there is a nested present(), i.e. present() -> markAsMapped() -> present(), the graphics buffer reference in the outer present() can be invalid markAsMapped(); m_graphicsBufferREf = frame.buffer; // frame.buffer can be deleted now In order to prevent accessing destroyed graphics buffers, this change makes the mark as mapped step last. As a long term measure, we need to reconsider how geometry updates flow. SENTRY: KWIN-8FZ (cherry picked from commit 324852e91b3692a1f528d81f67ca35d063c84960) M +6 -2 src/internalwindow.cpp https://invent.kde.org/plasma/kwin/-/commit/839a29a2f8719e4c4b55b43142c666b34a7a0f3a *** Bug 501193 has been marked as a duplicate of this bug. *** |