Backport fix for flicker-free login

Resolves: RHEL-10895
This commit is contained in:
Jonas Ådahl 2024-11-01 09:55:54 +01:00
parent ae0083d27e
commit 85a0dfda59
2 changed files with 59 additions and 1 deletions

View File

@ -0,0 +1,51 @@
From d71294da2282fe9a82cc8661d3110c8020a5069a Mon Sep 17 00:00:00 2001
From: Jocelyn Falempe <jfalempe@redhat.com>
Date: Wed, 13 Mar 2024 15:34:14 +0100
Subject: [PATCH] backend/native: Use drmModeCloseFB for flicker-free login
When logging in from gdm to gnome, the main plane is deactivated, and
leads to the screen going blank before gnome is able to enable it
again.
Using the new CloseFB ioctl, allows to keep the gdm login screen
displayed until gnome-shell replace it.
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3659>
(cherry picked from commit a775241efd8b840e7789077fb2224f0df2361d54)
---
meson.build | 3 ++-
src/backends/native/meta-drm-buffer.c | 4 +++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index 613aa67792..0c342ed335 100644
--- a/meson.build
+++ b/meson.build
@@ -45,7 +45,8 @@ wayland_protocols_req = '>= 1.19'
# native backend version requirements
libinput_req = '>= 1.15.0'
-gbm_req = '>= 17.3'
+gbm_req = '>= 21.3'
+libdrm_req = '>= 2.4.118'
# screen cast version requirements
libpipewire_req = '>= 0.3.21'
diff --git a/src/backends/native/meta-drm-buffer.c b/src/backends/native/meta-drm-buffer.c
index a0f8055b31..c650484552 100644
--- a/src/backends/native/meta-drm-buffer.c
+++ b/src/backends/native/meta-drm-buffer.c
@@ -211,7 +211,9 @@ rm_fb_in_impl (MetaKmsImpl *impl,
int ret;
fd = meta_kms_impl_device_get_fd (impl_device);
- ret = drmModeRmFB (fd, fb_id);
+ ret = drmModeCloseFB (fd, fb_id);
+ if (ret == -EINVAL)
+ ret = drmModeRmFB (fd, fb_id);
if (ret != 0)
g_warning ("drmModeRmFB: %s", g_strerror (-ret));
--
2.44.0.501.g19981daefd.dirty

View File

@ -10,7 +10,7 @@
Name: mutter
Version: 40.9
Release: 22%{?dist}
Release: 23%{?dist}
Summary: Window and compositing manager based on Clutter
License: GPLv2+
@ -146,6 +146,9 @@ Patch63: 0003-window-Unregister-cgroup-on-unmanage.patch
Patch64: 0004-window-Don-t-use-cgroup-workspace-if-there-already-i.patch
Patch65: 0005-cgroup-Get-app-info-from-gnome-shell-when-possible.patch
# RHEL-10895
Patch66: 0001-backend-native-Use-drmModeCloseFB-for-flicker-free-l.patch
BuildRequires: chrpath
BuildRequires: pango-devel
BuildRequires: startup-notification-devel
@ -293,6 +296,10 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop
%{_datadir}/mutter-%{mutter_api_version}/tests
%changelog
* Fri Nov 01 2024 Jonas Ådahl <jadahl@redhat.com> - 40.9-23
- Backport fix for flicker-free login
Resolves: RHEL-10895
* Fri Oct 18 2024 Jonas Ådahl <jadahl@redhat.com> - 40.9-22
- Fix crash when moving window while switching workspace
Resolves: RHEL-62997