Keep F36 behavior for hybrid machines with vendor nvidia driver...

rather than defaulting to Xorg with wayland as an option.

Resolves: #2128910
This commit is contained in:
Ray Strode 2022-09-27 10:01:46 -04:00
parent 27625e5ff8
commit 3cfc516785

View File

@ -1,26 +1,22 @@
From cc376327163a2c75487b07fa26880bf7a3b080fa Mon Sep 17 00:00:00 2001 From 5d363136eccb0c00368112e1856bb37ed26c6b16 Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build> From: rpm-build <rpm-build>
Date: Tue, 27 Sep 2022 09:04:54 -0400 Date: Tue, 27 Sep 2022 10:00:11 -0400
Subject: [PATCH] udev: Allow wayland on hybrid vendor nvidia machines Subject: [PATCH] udev: Stick with wayland on hybrid nvidia with vendor driver
We currently disable wayland on machines with the vendor F36 defaulted to wayland for users with hybrid graphics that
nvidia driver upstream if hybrid graphics are in place because there use the vendor nvidia driver.
is poor performance for multimonitor use cases.
But springing that change on users in F37 this late in the game We shouldn't change behavior so close to f37 release, so this
isn't nice, so instead default to Xorg and provide wayland as an commit brings that behavior back.
option in the menu.
https://bugzilla.redhat.com/show_bug.cgi?id=2128910
--- ---
data/61-gdm.rules.in | 5 +++-- data/61-gdm.rules.in | 6 ++++--
1 file changed, 3 insertions(+), 2 deletions(-) 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/data/61-gdm.rules.in b/data/61-gdm.rules.in diff --git a/data/61-gdm.rules.in b/data/61-gdm.rules.in
index 5bc9941..7e17be0 100644 index 5bc9941..d13f0b8 100644
--- a/data/61-gdm.rules.in --- a/data/61-gdm.rules.in
+++ b/data/61-gdm.rules.in +++ b/data/61-gdm.rules.in
@@ -57,66 +57,67 @@ TEST{0711}!="/usr/bin/nvidia-sleep.sh", GOTO="gdm_disable_wayland" @@ -57,66 +57,68 @@ TEST{0711}!="/usr/bin/nvidia-sleep.sh", GOTO="gdm_disable_wayland"
TEST{0711}!="/usr/lib/systemd/system-sleep/nvidia", GOTO="gdm_disable_wayland" TEST{0711}!="/usr/lib/systemd/system-sleep/nvidia", GOTO="gdm_disable_wayland"
IMPORT{program}="/bin/sh -c \"sed -e 's/: /=/g' -e 's/\([^[:upper:]]\)\([[:upper:]]\)/\1_\2/g' -e 's/[[:lower:]]/\U&/g' -e 's/^/NVIDIA_/' /proc/driver/nvidia/params\"" IMPORT{program}="/bin/sh -c \"sed -e 's/: /=/g' -e 's/\([^[:upper:]]\)\([[:upper:]]\)/\1_\2/g' -e 's/[[:lower:]]/\U&/g' -e 's/^/NVIDIA_/' /proc/driver/nvidia/params\""
ENV{NVIDIA_PRESERVE_VIDEO_MEMORY_ALLOCATIONS}!="1", GOTO="gdm_disable_wayland" ENV{NVIDIA_PRESERVE_VIDEO_MEMORY_ALLOCATIONS}!="1", GOTO="gdm_disable_wayland"
@ -52,14 +48,15 @@ index 5bc9941..7e17be0 100644
LABEL="gdm_hybrid_graphics_check_end" LABEL="gdm_hybrid_graphics_check_end"
-# If this is a hybrid graphics laptop with vendor nvidia driver, disable wayland -# If this is a hybrid graphics laptop with vendor nvidia driver, disable wayland
+# If this is a hybrid graphics laptop with vendor nvidia driver, prefer xorg since +# If this is a hybrid graphics laptop with vendor nvidia driver default to wayland
+# multimonitor has very poor performance +# It gives poor performance for multi-monitor, but Xorg fails some multi-monitor
+# setups too, and this is what we did in F36.
LABEL="gdm_hybrid_nvidia_laptop_check" LABEL="gdm_hybrid_nvidia_laptop_check"
TEST!="/run/udev/gdm-machine-is-laptop", GOTO="gdm_hybrid_nvidia_laptop_check_end" TEST!="/run/udev/gdm-machine-is-laptop", GOTO="gdm_hybrid_nvidia_laptop_check_end"
TEST!="/run/udev/gdm-machine-has-hybrid-graphics", GOTO="gdm_hybrid_nvidia_laptop_check_end" TEST!="/run/udev/gdm-machine-has-hybrid-graphics", GOTO="gdm_hybrid_nvidia_laptop_check_end"
TEST!="/run/udev/gdm-machine-has-vendor-nvidia-driver", GOTO="gdm_hybrid_nvidia_laptop_check_end" TEST!="/run/udev/gdm-machine-has-vendor-nvidia-driver", GOTO="gdm_hybrid_nvidia_laptop_check_end"
-GOTO="gdm_disable_wayland" -GOTO="gdm_disable_wayland"
+GOTO="gdm_prefer_xorg" +GOTO="gdm_end"
LABEL="gdm_hybrid_nvidia_laptop_check_end" LABEL="gdm_hybrid_nvidia_laptop_check_end"
# Disable wayland in situation where we're in a guest with a virtual gpu and host passthrough gpu # Disable wayland in situation where we're in a guest with a virtual gpu and host passthrough gpu