Backport MR #2359 to fix GNOME on legacy Radeon (#2081070)

This commit is contained in:
Adam Williamson 2022-05-02 11:16:18 -07:00
parent 00e14a5559
commit 42dd39a354
3 changed files with 91 additions and 1 deletions

View File

@ -0,0 +1,51 @@
From 11e6100226006b5371de30310357582db64c9309 Mon Sep 17 00:00:00 2001
From: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Tue, 5 Apr 2022 17:05:17 +0800
Subject: [PATCH 1/2] kms/impl-device: Add addfb2_modifiers to
MetaKmsDeviceCaps
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2359>
---
src/backends/native/meta-kms-impl-device.c | 6 ++++++
src/backends/native/meta-kms-impl-device.h | 1 +
2 files changed, 7 insertions(+)
diff --git a/src/backends/native/meta-kms-impl-device.c b/src/backends/native/meta-kms-impl-device.c
index b05bf5fdab..ec1a0e5a45 100644
--- a/src/backends/native/meta-kms-impl-device.c
+++ b/src/backends/native/meta-kms-impl-device.c
@@ -303,6 +303,7 @@ init_caps (MetaKmsImplDevice *impl_device)
uint64_t cursor_width, cursor_height;
uint64_t prefer_shadow;
uint64_t uses_monotonic_clock;
+ uint64_t addfb2_modifiers;
fd = meta_device_file_get_fd (priv->device_file);
if (drmGetCap (fd, DRM_CAP_CURSOR_WIDTH, &cursor_width) == 0 &&
@@ -325,6 +326,11 @@ init_caps (MetaKmsImplDevice *impl_device)
{
priv->caps.uses_monotonic_clock = uses_monotonic_clock;
}
+
+ if (drmGetCap (fd, DRM_CAP_ADDFB2_MODIFIERS, &addfb2_modifiers) == 0)
+ {
+ priv->caps.addfb2_modifiers = (addfb2_modifiers != 0);
+ }
}
static void
diff --git a/src/backends/native/meta-kms-impl-device.h b/src/backends/native/meta-kms-impl-device.h
index e81f00e39c..286c2700a6 100644
--- a/src/backends/native/meta-kms-impl-device.h
+++ b/src/backends/native/meta-kms-impl-device.h
@@ -40,6 +40,7 @@ typedef struct _MetaKmsDeviceCaps
gboolean prefers_shadow_buffer;
gboolean uses_monotonic_clock;
+ gboolean addfb2_modifiers;
} MetaKmsDeviceCaps;
typedef struct _MetaKmsProp MetaKmsProp;
--
2.36.0

View File

@ -0,0 +1,29 @@
From dd94c448e94b1033b90749d77c5dc587c3b8f9f4 Mon Sep 17 00:00:00 2001
From: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Tue, 5 Apr 2022 17:06:21 +0800
Subject: [PATCH 2/2] kms/device: Disable modifiers when
!DRM_CAP_ADDFB2_MODIFIERS
Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2210
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2359>
---
src/backends/native/meta-kms-device.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/backends/native/meta-kms-device.c b/src/backends/native/meta-kms-device.c
index bef1e20657..7c84f14f51 100644
--- a/src/backends/native/meta-kms-device.c
+++ b/src/backends/native/meta-kms-device.c
@@ -490,6 +490,9 @@ meta_kms_device_new (MetaKms *kms,
free (device->path);
device->path = data.out_path;
+ if (!device->caps.addfb2_modifiers)
+ device->flags |= META_KMS_DEVICE_FLAG_DISABLE_MODIFIERS;
+
return device;
}
--
2.36.0

View File

@ -10,7 +10,7 @@
Name: mutter Name: mutter
Version: 42.0 Version: 42.0
Release: 5%{?dist} Release: 6%{?dist}
Summary: Window and compositing manager based on Clutter Summary: Window and compositing manager based on Clutter
License: GPLv2+ License: GPLv2+
@ -63,6 +63,13 @@ Patch9: 0002-events-Use-the-event-target-actor-to-determine-windo.patch
# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2366 # https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2366
Patch10: 2366.patch Patch10: 2366.patch
# Fix graphics initialization on legacy Radeon
# https://gitlab.gnome.org/GNOME/mutter/-/issues/2210
# https://bugzilla.redhat.com/show_bug.cgi?id=2081070
# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2359
Patch11: 0001-kms-impl-device-Add-addfb2_modifiers-to-MetaKmsDevic.patch
Patch12: 0002-kms-device-Disable-modifiers-when-DRM_CAP_ADDFB2_MOD.patch
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.41.0 BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.41.0
BuildRequires: pkgconfig(sm) BuildRequires: pkgconfig(sm)
BuildRequires: pkgconfig(libwacom) BuildRequires: pkgconfig(libwacom)
@ -206,6 +213,9 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop
%{_datadir}/mutter-%{mutter_api_version}/tests %{_datadir}/mutter-%{mutter_api_version}/tests
%changelog %changelog
* Mon May 02 2022 Adam Williamson <awilliam@redhat.com> - 42.0-6
- Backport MR #2359 to fix GNOME on legacy Radeon (#2081070)
* Tue Apr 19 2022 Adam Williamson <awilliam@redhat.com> - 42.0-5 * Tue Apr 19 2022 Adam Williamson <awilliam@redhat.com> - 42.0-5
- Backport MR #2366 to fix stuck modifier key issues (#2076390) - Backport MR #2366 to fix stuck modifier key issues (#2076390)
- Backport MR #2321 to fix top bar hover issues - Backport MR #2321 to fix top bar hover issues