git: e5444e87a3a8 - main - x11-wm/plasma6-kwin: add upstream patch to fix KWin crash
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 05 Mar 2025 20:03:19 UTC
The branch main has been updated by makc:
URL: https://cgit.FreeBSD.org/ports/commit/?id=e5444e87a3a84909233d69f36b425226b79a38fb
commit e5444e87a3a84909233d69f36b425226b79a38fb
Author: Max Brazhnikov <makc@FreeBSD.org>
AuthorDate: 2025-03-05 19:33:32 +0000
Commit: Max Brazhnikov <makc@FreeBSD.org>
CommitDate: 2025-03-05 20:00:33 +0000
x11-wm/plasma6-kwin: add upstream patch to fix KWin crash
---
x11-wm/plasma6-kwin/Makefile | 1 +
x11-wm/plasma6-kwin/files/patch-bug500819 | 46 +++++++++++++++++++++++++++++++
2 files changed, 47 insertions(+)
diff --git a/x11-wm/plasma6-kwin/Makefile b/x11-wm/plasma6-kwin/Makefile
index 3bbb41749e53..6335aa4a702d 100644
--- a/x11-wm/plasma6-kwin/Makefile
+++ b/x11-wm/plasma6-kwin/Makefile
@@ -1,5 +1,6 @@
PORTNAME= kwin
DISTVERSION= ${KDE_PLASMA_VERSION}.1
+PORTREVISION= 1
CATEGORIES= x11-wm kde kde-plasma
COMMENT= Easy to use, but flexible, X Window Manager and Wayland Compositor
diff --git a/x11-wm/plasma6-kwin/files/patch-bug500819 b/x11-wm/plasma6-kwin/files/patch-bug500819
new file mode 100644
index 000000000000..b62045d2de18
--- /dev/null
+++ b/x11-wm/plasma6-kwin/files/patch-bug500819
@@ -0,0 +1,46 @@
+commit b97892417ec1649c780e85e403842a77a6ab87b6
+Author: Xaver Hugl <xaver.hugl@gmail.com>
+Date: Wed Feb 26 12:58:09 2025 +0100
+
+ backends/drm: fix testing for more connectors than CRTCs
+
+ The connectors may not actually be enabled, so the checks could sometimes result in
+ wrongly returning Error::NotEnoughCrtcs.
+
+ BUG: 500819
+ CCBUG: 500797
+
+ (cherry picked from commit aa11d89a90bc4eb77bfe191a2cadede4d957d2a9)
+
+diff --git a/src/backends/drm/drm_gpu.cpp b/src/backends/drm/drm_gpu.cpp
+index 9291b5296d..4599b3dc46 100644
+--- src/backends/drm/drm_gpu.cpp
++++ src/backends/drm/drm_gpu.cpp
+@@ -345,15 +345,7 @@ void DrmGpu::removeOutputs()
+
+ DrmPipeline::Error DrmGpu::checkCrtcAssignment(QList<DrmConnector *> connectors, const QList<DrmCrtc *> &crtcs)
+ {
+- if (connectors.isEmpty() || crtcs.isEmpty()) {
+- if (m_pipelines.isEmpty()) {
+- // nothing to do
+- return DrmPipeline::Error::None;
+- }
+- if (!connectors.empty()) {
+- // we have no crtcs left to drive the remaining connectors
+- return DrmPipeline::Error::InvalidArguments;
+- }
++ if (connectors.isEmpty()) {
+ return testPipelines();
+ }
+ auto connector = connectors.takeFirst();
+@@ -363,6 +355,10 @@ DrmPipeline::Error DrmGpu::checkCrtcAssignment(QList<DrmConnector *> connectors,
+ pipeline->setCrtc(nullptr);
+ return checkCrtcAssignment(connectors, crtcs);
+ }
++ if (crtcs.isEmpty()) {
++ // we have no crtc left to drive this connector
++ return DrmPipeline::Error::InvalidArguments;
++ }
+ DrmCrtc *currentCrtc = nullptr;
+ if (m_atomicModeSetting) {
+ // try the crtc that this connector is already connected to first