https://bugs.kde.org/show_bug.cgi?id=439873

--- Comment #19 from Ash Blake <telepath...@tutanota.com> ---
(In reply to Ash Blake from comment #18)
> and these multiple deletions may be normal

Unfortunately, there is something wrong anyways even though it is not multiple
deletion.

Right before the crash, a pipeline that was involved in it got created and then
deleted exactly three times in a row, so this is the same situation as
previously but it turns out the destruction behaviour is actually normal.

updateOutputs should not have received a deleted pipeline from
findWorkingCombination though, so something is wrong here.


Construction:
$28 = (KWin::DrmPipeline * const) 0x56548a2aebd0
#0  KWin::DrmPipeline::DrmPipeline(KWin::DrmGpu*, KWin::DrmConnector*,
KWin::DrmCrtc*, KWin::DrmPlane*) (this=this@entry=0x56548a2aebd0,
gpu=0x565489679430, conn=0x565489e91be0, crtc=crtc@entry=0x5654896e4eb0,
primaryPlane=primaryPlane@entry=0x5654896be1b0) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_pipeline.cpp:37
#1  0x00007f0549d5e49c in operator()(KWin::DrmCrtc*, KWin::DrmPlane*) const
(__closure=__closure@entry=0x7ffe8d5e8660, crtc=0x5654896e4eb0,
primaryPlane=0x5654896be1b0) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_gpu.cpp:364

Destruction:
$29 = (KWin::DrmPipeline * const) 0x56548a2aebd0
#0  KWin::DrmPipeline::~DrmPipeline() (this=0x56548a2aebd0,
__in_chrg=<optimized out>) at /usr/include/c++/11.1.0/bits/atomic_base.h:479
#1  0x00007f0549d5e99e in operator()(KWin::DrmCrtc*, KWin::DrmPlane*) const
(__closure=__closure@entry=0x7ffe8d5e8660, crtc=<optimized out>,
primaryPlane=0x7ffe8d5e85a8) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_gpu.cpp:373



Relevant lines from the segfault backtrace, with yet another exact point of
crash:
#0 
QSharedPointer<KWin::DrmBuffer>::deref(QtSharedPointer::ExternalRefCountData*)
(dd=0x565400000002) at /usr/include/qt/QtCore/qsharedpointer_impl.h:454
#1  QSharedPointer<KWin::DrmBuffer>::deref() (this=<synthetic pointer>) at
/usr/include/qt/QtCore/qsharedpointer_impl.h:453
#2  QSharedPointer<KWin::DrmBuffer>::~QSharedPointer() (this=<synthetic
pointer>, __in_chrg=<optimized out>) at
/usr/include/qt/QtCore/qsharedpointer_impl.h:310
#3  QSharedPointer<KWin::DrmBuffer>::operator=(QSharedPointer<KWin::DrmBuffer>
const&) (other=<optimized out>, other=..., this=0x56548a2aebf8) at
/usr/include/qt/QtCore/qsharedpointer_impl.h:333
#4  KWin::DrmPipeline::present(QSharedPointer<KWin::DrmBuffer> const&)
(this=0x56548a2aebd0, buffer=...) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_pipeline.cpp:81
#5  0x00007f0549d55bb8 in
KWin::DrmOutput::present(QSharedPointer<KWin::DrmBuffer> const&, QRegion)
(this=this@entry=0x565489e97d50, buffer=..., damagedRegion=...) at
/home/ash/kde/src/kwin/src/plugins/platforms/drm/drm_output.cpp:394

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to