Summary: | Assert in KWin::WindowQuad KWin::WindowQuad::makeSubQuad | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Aureo Fetter <aureo.fetter> |
Component: | scene-opengl | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | aureo.fetter, bugs.kde.org.vtj1a, bugseforuns, comienzaporlac, cp100u+kdebugtracking, dJJ1013b, fernando.alapa, gamebus2011, grs5382, i, jesusbalbastro, kde, kdemeoz, lukibartl, martin.vlk, matthieu.xillo, mattiiluca, mihaela.jurkovic, nate, Nourepide, odmar, rafael-evald, redhead63, schwancarl, smkozasa, superden1988, testpat2, tusharpandey13, vlad.zahorodnii, whyhollis+eidei, win10 |
Priority: | VHI | Keywords: | drkonqi |
Version: | 5.14.4 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=395493 | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | output qdbus |
Description
Aureo Fetter
2016-09-15 12:37:29 UTC
could you please provide the output of: qdbus org.kde.KWin /KWin supportInformation Created attachment 101099 [details]
output qdbus
Relevant code section: m_hardwareClipping = region != infiniteRegion() && (mask & PAINT_WINDOW_TRANSFORMED) && !(mask & PAINT_SCREEN_TRANSFORMED); if (region != infiniteRegion() && !m_hardwareClipping) { WindowQuadList quads; quads.reserve(data.quads.count()); const QRegion filterRegion = region.translated(-x(), -y()); // split all quads in bounding rect with the actual rects in the region foreach (const WindowQuad &quad, data.quads) { foreach (const QRect &r, filterRegion.rects()) { const QRectF rf(r); const QRectF quadRect(QPointF(quad.left(), quad.top()), QPointF(quad.right(), quad.bottom())); const QRectF &intersected = rf.intersected(quadRect); if (intersected.isValid()) { if (quadRect == intersected) { // case 1: completely contains, include and do not check other rects quads << quad; break; } // case 2: intersection quads << quad.makeSubQuad(intersected.left(), intersected.top(), intersected.right(), intersected.bottom()); } } } data.quads = quads; } The crash happens in the "case 2: intersection". The complete if-section should not have been taken. We need to figure out why the system went into that branch and either fix that or remove the qFatal. *** Bug 393284 has been marked as a duplicate of this bug. *** I'm having the same problem (sort of), I already created a post with details on this on the ubuntu forums, askubuntu and reddit; https://ubuntuforums.org/showthread.php?t=2392350&p=13768640#post13768640 https://askubuntu.com/questions/1038370/with-some-kde-specific-settings-kwin-crashes-kubuntu-18-04lts https://www.reddit.com/r/linuxquestions/comments/8ksav8/kubuntu_1804lts_with_some_kde_specific_settings/ *** Bug 395493 has been marked as a duplicate of this bug. *** (In reply to Martin Flöser from comment #3) > The crash happens in the "case 2: intersection". The complete if-section > should not have been taken. > > We need to figure out why the system went into that branch and either fix > that or remove the qFatal. See https://bugs.kde.org/show_bug.cgi?id=395493#c9 for how to trigger the qFatal. With the Magic lamp effect, for example, bottom quads can be outside of screen so we need to clip them. Because the Magic lamp already transformed that quads, the qFatal will be triggered. I'm not sure whether removing that qFatal will improve something because window quads won't be properly clipped. Most likely, we need to implement some fancy polygon-clipping algorithm. FWIW, if a convex quadrilateral is clipped by a rectangle the result can be either: * quadrilateral * pentagon (5 edges) * hexagon (6 edges) * heptagon (7 edges) * or, octagon (8 edges) so, if the resulting polygon has >= 5 edges we need to split it into quadrilaterals. Maybe, we could use scissor test if !(mask & PAINT_WINDOW_TRANSFORMED), I dunno. Any other ideas how to fix this bug? Or, maybe, that's fine to "distort" clipped window quads? *** Bug 399344 has been marked as a duplicate of this bug. *** *** Bug 398127 has been marked as a duplicate of this bug. *** *** Bug 385142 has been marked as a duplicate of this bug. *** *** Bug 399625 has been marked as a duplicate of this bug. *** *** Bug 399706 has been marked as a duplicate of this bug. *** *** Bug 400127 has been marked as a duplicate of this bug. *** *** Bug 401549 has been marked as a duplicate of this bug. *** *** Bug 402943 has been marked as a duplicate of this bug. *** *** Bug 403253 has been marked as a duplicate of this bug. *** *** Bug 404141 has been marked as a duplicate of this bug. *** *** Bug 404279 has been marked as a duplicate of this bug. *** *** Bug 404564 has been marked as a duplicate of this bug. *** *** Bug 404654 has been marked as a duplicate of this bug. *** *** Bug 404747 has been marked as a duplicate of this bug. *** *** Bug 405139 has been marked as a duplicate of this bug. *** *** Bug 405466 has been marked as a duplicate of this bug. *** *** Bug 405538 has been marked as a duplicate of this bug. *** *** Bug 406045 has been marked as a duplicate of this bug. *** *** Bug 407550 has been marked as a duplicate of this bug. *** *** Bug 409182 has been marked as a duplicate of this bug. *** the crash also occurs on Wayland when switching virtual desktops and the system goes to login screen. (In reply to Patrick Silva from comment #28) > the crash also occurs on Wayland when switching virtual desktops and the > system goes to login screen. switching desktops while fall apart effect is enabled. *** Bug 410419 has been marked as a duplicate of this bug. *** *** Bug 412634 has been marked as a duplicate of this bug. *** *** Bug 415078 has been marked as a duplicate of this bug. *** *** Bug 417641 has been marked as a duplicate of this bug. *** *** Bug 417395 has been marked as a duplicate of this bug. *** Could this bug: https://bugs.kde.org/show_bug.cgi?id=418208 be a duplicate? *** Bug 418208 has been marked as a duplicate of this bug. *** *** Bug 422650 has been marked as a duplicate of this bug. *** *** Bug 428076 has been marked as a duplicate of this bug. *** We haven't had a report on this in 6 months (the last one was Debian so doesn't count) It seems like a kwin refactor or a graphic driver patch has inadvertently fixed it. From our side I think there's nothing we can work on. Closing, but please do reopen if we see dupes. |