diff --git a/src/backends/drm/drm_commit_thread.cpp b/src/backends/drm/drm_commit_thread.cpp index 30b66de916..98897ef4f4 100644 --- a/src/backends/drm/drm_commit_thread.cpp +++ b/src/backends/drm/drm_commit_thread.cpp @@ -21,7 +21,7 @@ namespace KWin // committing takes about 800µs, the rest is accounting for sleep not being accurate enough static constexpr auto s_safetyMargin = 1800us; -DrmCommitThread::DrmCommitThread() +DrmCommitThread::DrmCommitThread(const QString &name) { m_thread.reset(QThread::create([this]() { gainRealTime(); @@ -80,6 +80,7 @@ DrmCommitThread::DrmCommitThread() } } })); + m_thread->setObjectName(name); m_thread->start(); } diff --git a/src/backends/drm/drm_commit_thread.h b/src/backends/drm/drm_commit_thread.h index d698085cc1..f9de378081 100644 --- a/src/backends/drm/drm_commit_thread.h +++ b/src/backends/drm/drm_commit_thread.h @@ -26,7 +26,7 @@ class DrmCommitThread : public QObject { Q_OBJECT public: - explicit DrmCommitThread(); + explicit DrmCommitThread(const QString &name); ~DrmCommitThread(); void addCommit(std::unique_ptr &&commit); diff --git a/src/backends/drm/drm_connector.cpp b/src/backends/drm/drm_connector.cpp index 400a0701f1..5e4b9ff0ce 100644 --- a/src/backends/drm/drm_connector.cpp +++ b/src/backends/drm/drm_connector.cpp @@ -136,8 +136,8 @@ DrmConnector::DrmConnector(DrmGpu *gpu, uint32_t connectorId) QByteArrayLiteral("BT2020_RGB"), QByteArrayLiteral("BT2020_YCC"), }) - , m_pipeline(std::make_unique(this)) , m_conn(drmModeGetConnector(gpu->fd(), connectorId)) + , m_pipeline(m_conn ? std::make_unique(this) : nullptr) { if (m_conn) { for (int i = 0; i < m_conn->count_encoders; ++i) { diff --git a/src/backends/drm/drm_connector.h b/src/backends/drm/drm_connector.h index df8e7c8c44..d0b58db0eb 100644 --- a/src/backends/drm/drm_connector.h +++ b/src/backends/drm/drm_connector.h @@ -138,8 +138,8 @@ private: QList> generateCommonModes(); std::shared_ptr generateMode(const QSize &size, float refreshRate); - std::unique_ptr m_pipeline; DrmUniquePtr m_conn; + std::unique_ptr m_pipeline; Edid m_edid; QSize m_physicalSize = QSize(-1, -1); QList> m_driverModes; diff --git a/src/backends/drm/drm_pipeline.cpp b/src/backends/drm/drm_pipeline.cpp index 6d79247090..9316f996c7 100644 --- a/src/backends/drm/drm_pipeline.cpp +++ b/src/backends/drm/drm_pipeline.cpp @@ -39,7 +39,7 @@ static const QMap> legacyCursorFormats = {{DRM_FORMA DrmPipeline::DrmPipeline(DrmConnector *conn) : m_connector(conn) - , m_commitThread(std::make_unique()) + , m_commitThread(std::make_unique(conn->connectorName())) { QObject::connect(m_commitThread.get(), &DrmCommitThread::commitFailed, [this]() { if (m_output) {