commit:     74884494b7e14ffb754087704badfa70750e593a
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sun Aug  7 17:23:14 2022 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Aug  7 20:38:44 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=74884494

kde-plasma/kwin: backends/drm: fix blob updating

KDE-bug: https://bugs.kde.org/show_bug.cgi?id=449285

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/kwin-5.24.6-drm-fix-blob-updating.patch  | 38 ++++++++++++++++++++++
 .../files/kwin-5.25.4-drm-fix-blob-updating.patch  | 38 ++++++++++++++++++++++
 kde-plasma/kwin/kwin-5.24.6-r2.ebuild              |  1 +
 kde-plasma/kwin/kwin-5.25.4-r1.ebuild              |  2 ++
 4 files changed, 79 insertions(+)

diff --git a/kde-plasma/kwin/files/kwin-5.24.6-drm-fix-blob-updating.patch 
b/kde-plasma/kwin/files/kwin-5.24.6-drm-fix-blob-updating.patch
new file mode 100644
index 000000000000..45d231a70f1b
--- /dev/null
+++ b/kde-plasma/kwin/files/kwin-5.24.6-drm-fix-blob-updating.patch
@@ -0,0 +1,38 @@
+From 3af37c8a29af36eb773b0684237d61b2bd6b81f9 Mon Sep 17 00:00:00 2001
+From: Xaver Hugl <[email protected]>
+Date: Thu, 4 Aug 2022 15:36:26 +0200
+Subject: [PATCH] backends/drm: fix blob updating
+
+Two things about the code were wrong:
+1. m_current is used in updateBlob() but was only updated afterwards
+2. the assumption that the property having the same ID means it has the
+same blob contents is not always true
+
+BUG: 449285
+
+
+(cherry picked from commit 97939ceae864aef2f50e117496f548555877b4ea)
+---
+ src/backends/drm/drm_property.cpp | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/src/backends/drm/drm_property.cpp 
b/src/backends/drm/drm_property.cpp
+index 8ab0dc0e5a..b2a2deda12 100644
+--- a/src/backends/drm/drm_property.cpp
++++ b/src/backends/drm/drm_property.cpp
+@@ -112,10 +112,8 @@ bool DrmProperty::needsCommit() const
+ 
+ void DrmProperty::setCurrent(uint64_t value)
+ {
+-    if (m_current != value) {
+-        updateBlob();
+-        m_current = value;
+-    }
++    m_current = value;
++    updateBlob();
+ }
+ 
+ uint64_t DrmProperty::current() const
+-- 
+GitLab
+

diff --git a/kde-plasma/kwin/files/kwin-5.25.4-drm-fix-blob-updating.patch 
b/kde-plasma/kwin/files/kwin-5.25.4-drm-fix-blob-updating.patch
new file mode 100644
index 000000000000..282913620c7b
--- /dev/null
+++ b/kde-plasma/kwin/files/kwin-5.25.4-drm-fix-blob-updating.patch
@@ -0,0 +1,38 @@
+From 9a81567777f94e2e6c1a121f1d86dd2bdea83adf Mon Sep 17 00:00:00 2001
+From: Xaver Hugl <[email protected]>
+Date: Thu, 4 Aug 2022 15:36:26 +0200
+Subject: [PATCH] backends/drm: fix blob updating
+
+Two things about the code were wrong:
+1. m_current is used in updateBlob() but was only updated afterwards
+2. the assumption that the property having the same ID means it has the
+same blob contents is not always true
+
+BUG: 449285
+
+
+(cherry picked from commit 97939ceae864aef2f50e117496f548555877b4ea)
+---
+ src/backends/drm/drm_property.cpp | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/src/backends/drm/drm_property.cpp 
b/src/backends/drm/drm_property.cpp
+index c9f7718abd..cee80d043a 100644
+--- a/src/backends/drm/drm_property.cpp
++++ b/src/backends/drm/drm_property.cpp
+@@ -112,10 +112,8 @@ bool DrmProperty::needsCommit() const
+ 
+ void DrmProperty::setCurrent(uint64_t value)
+ {
+-    if (m_current != value) {
+-        updateBlob();
+-        m_current = value;
+-    }
++    m_current = value;
++    updateBlob();
+ }
+ 
+ uint64_t DrmProperty::current() const
+-- 
+GitLab
+

diff --git a/kde-plasma/kwin/kwin-5.24.6-r2.ebuild 
b/kde-plasma/kwin/kwin-5.24.6-r2.ebuild
index 7fd2b9654114..bb3d86644b6b 100644
--- a/kde-plasma/kwin/kwin-5.24.6-r2.ebuild
+++ b/kde-plasma/kwin/kwin-5.24.6-r2.ebuild
@@ -102,6 +102,7 @@ PDEPEND=">=kde-plasma/kde-cli-tools-${PVCUT}:5"
 PATCHES=(
        "${FILESDIR}/${P}-emit-rowsChanged.patch"
        "${FILESDIR}/${P}-fix-color-picker.patch" # KDE-bug 454974
+       "${FILESDIR}/${P}-drm-fix-blob-updating.patch" # KDE-bug 449285
 )
 
 src_prepare() {

diff --git a/kde-plasma/kwin/kwin-5.25.4-r1.ebuild 
b/kde-plasma/kwin/kwin-5.25.4-r1.ebuild
index ca0aa6e8d72d..44b1802e9117 100644
--- a/kde-plasma/kwin/kwin-5.25.4-r1.ebuild
+++ b/kde-plasma/kwin/kwin-5.25.4-r1.ebuild
@@ -102,6 +102,8 @@ BDEPEND="
 "
 PDEPEND=">=kde-plasma/kde-cli-tools-${PVCUT}:5"
 
+PATCHES=( "${FILESDIR}/${P}-drm-fix-blob-updating.patch" ) # KDE-bug 449285
+
 src_prepare() {
        ecm_src_prepare
        use multimedia || eapply 
"${FILESDIR}/${PN}-5.21.80-gstreamer-optional.patch"

Reply via email to