From 1f59144b9291c302aaedf6c2999694105f64e93d Mon Sep 17 00:00:00 2001 From: Neal Gompa Date: Mon, 8 Jul 2024 20:54:42 -0400 Subject: [PATCH] Drop rules for falling back in X11 The Fedora GNOME experience provided by Workstation no longer includes GNOME X11 on the media, so realistically there is nothing to fall back to anymore. Reference: https://fedoraproject.org/wiki/Changes/WaylandOnlyGNOMEWorkstationMedia --- ...ata-Drop-unused-gdm_prefer_xorg-rule.patch | 28 +++++ ...wayland-on-hybrid-nvidia-with-vendor.patch | 38 ------- 0002-data-Drop-X11-fallback-rules.patch | 100 ++++++++++++++++++ gdm.spec | 3 +- 4 files changed, 130 insertions(+), 39 deletions(-) create mode 100644 0001-data-Drop-unused-gdm_prefer_xorg-rule.patch delete mode 100644 0001-udev-Stick-with-wayland-on-hybrid-nvidia-with-vendor.patch create mode 100644 0002-data-Drop-X11-fallback-rules.patch diff --git a/0001-data-Drop-unused-gdm_prefer_xorg-rule.patch b/0001-data-Drop-unused-gdm_prefer_xorg-rule.patch new file mode 100644 index 0000000..2040608 --- /dev/null +++ b/0001-data-Drop-unused-gdm_prefer_xorg-rule.patch @@ -0,0 +1,28 @@ +From a1a145b4d56be57166dc593d80bfe190e37e080e Mon Sep 17 00:00:00 2001 +From: Neal Gompa +Date: Mon, 8 Jul 2024 20:31:48 -0400 +Subject: [PATCH 1/2] data: Drop unused gdm_prefer_xorg rule + +This rule is not used for anything. +--- + data/61-gdm.rules.in | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/data/61-gdm.rules.in b/data/61-gdm.rules.in +index aa1a0e06c..354277bfe 100644 +--- a/data/61-gdm.rules.in ++++ b/data/61-gdm.rules.in +@@ -109,10 +109,6 @@ LABEL="gdm_nvidia_drm_end" + + GOTO="gdm_end" + +-LABEL="gdm_prefer_xorg" +-RUN+="@libexecdir@/gdm-runtime-config set daemon PreferredDisplayServer xorg" +-GOTO="gdm_end" +- + LABEL="gdm_disable_wayland" + RUN+="@libexecdir@/gdm-runtime-config set daemon WaylandEnable false" + GOTO="gdm_end" +-- +2.45.2 + diff --git a/0001-udev-Stick-with-wayland-on-hybrid-nvidia-with-vendor.patch b/0001-udev-Stick-with-wayland-on-hybrid-nvidia-with-vendor.patch deleted file mode 100644 index 3ea7d79..0000000 --- a/0001-udev-Stick-with-wayland-on-hybrid-nvidia-with-vendor.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 32cabdadde5e272a8f045208fe4af1d47e4c3854 Mon Sep 17 00:00:00 2001 -From: rpm-build -Date: Tue, 27 Sep 2022 10:00:11 -0400 -Subject: [PATCH] udev: Stick with wayland on hybrid nvidia with vendor driver - -F36 defaulted to wayland for users with hybrid graphics that -use the vendor nvidia driver. - -We shouldn't change behavior so close to f37 release, so this -commit brings that behavior back. ---- - data/61-gdm.rules.in | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/data/61-gdm.rules.in b/data/61-gdm.rules.in -index a4f841bdf..addfc3119 100644 ---- a/data/61-gdm.rules.in -+++ b/data/61-gdm.rules.in -@@ -82,12 +82,14 @@ ENV{GDM_NUMBER_OF_GRAPHICS_CARDS}=="1", RUN+="/usr/bin/rm -f /run/udev/gdm-machi - ENV{GDM_NUMBER_OF_GRAPHICS_CARDS}!="1", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-hybrid-graphics" - 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 default to wayland -+# 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" - 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-vendor-nvidia-driver", GOTO="gdm_hybrid_nvidia_laptop_check_end" --GOTO="gdm_disable_wayland" -+GOTO="gdm_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 --- -2.40.0 - diff --git a/0002-data-Drop-X11-fallback-rules.patch b/0002-data-Drop-X11-fallback-rules.patch new file mode 100644 index 0000000..91edd44 --- /dev/null +++ b/0002-data-Drop-X11-fallback-rules.patch @@ -0,0 +1,100 @@ +From 91608626f360638c0dbffa1dbad58c426c8fc733 Mon Sep 17 00:00:00 2001 +From: Neal Gompa +Date: Mon, 8 Jul 2024 20:35:28 -0400 +Subject: [PATCH 2/2] data: Drop X11 fallback rules + +We expect Wayland to work on all conceivable configurations. +--- + data/61-gdm.rules.in | 60 -------------------------------------------- + 1 file changed, 60 deletions(-) + +diff --git a/data/61-gdm.rules.in b/data/61-gdm.rules.in +index 354277bfe..eb9eedbf5 100644 +--- a/data/61-gdm.rules.in ++++ b/data/61-gdm.rules.in +@@ -10,22 +10,8 @@ ATTR{vendor}=="0x1b36", ATTR{device}=="0x0100", RUN+="/usr/bin/touch /run/udev/g + # vga + ATTR{vendor}=="0x1234", ATTR{device}=="0x1111", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-virtual-gpu", ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}="1", GOTO="gdm_pci_device_end" + +-# disable Wayland on Hi1710 chipsets +-ATTR{vendor}=="0x19e5", ATTR{device}=="0x1711", GOTO="gdm_disable_wayland" +- + LABEL="gdm_pci_device_end" + +-# disable Wayland if modesetting is disabled +-KERNEL!="card[0-9]*", GOTO="gdm_nomodeset_end" +-KERNEL=="card[0-9]-*", GOTO="gdm_nomodeset_end" +-SUBSYSTEM!="drm", GOTO="gdm_nomodeset_end" +-# but keep it enabled for simple framebuffer drivers +-DRIVERS=="simple-framebuffer", GOTO="gdm_nomodeset_end" +-IMPORT{parent}="GDM_MACHINE_HAS_VIRTUAL_GPU" +-ENV{GDM_MACHINE_HAS_VIRTUAL_GPU}!="1", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-hardware-gpu" +-IMPORT{cmdline}="nomodeset", GOTO="gdm_disable_wayland" +-LABEL="gdm_nomodeset_end" +- + # The vendor nvidia driver has multiple modules that need to be loaded before GDM can make an + # informed choice on which way to proceed, so force GDM to wait until NVidia's modules are + # loaded before starting up. +@@ -41,17 +27,6 @@ IMPORT{program}="/bin/sh -c \"sed -e 's/: /=/g' -e 's/\([^[:upper:]]\)\([[:upper + # If it is, there's no need to check for the suspend/resume services + ENV{NVIDIA_ENABLE_S0IX_POWER_MANAGEMENT}=="1", GOTO="gdm_nvidia_suspend_end" + +-# Check if suspend/resume services necessary for working wayland support is available +-TEST{0711}!="/usr/bin/nvidia-sleep.sh", GOTO="gdm_disable_wayland" +-TEST{0711}!="/usr/lib/systemd/system-sleep/nvidia", GOTO="gdm_disable_wayland" +- +-ENV{NVIDIA_PRESERVE_VIDEO_MEMORY_ALLOCATIONS}!="1", GOTO="gdm_disable_wayland" +-IMPORT{program}="/bin/sh -c 'echo NVIDIA_HIBERNATE=`systemctl is-enabled nvidia-hibernate`'" +-ENV{NVIDIA_HIBERNATE}!="enabled", GOTO="gdm_disable_wayland" +-IMPORT{program}="/bin/sh -c 'echo NVIDIA_RESUME=`systemctl is-enabled nvidia-resume`'" +-ENV{NVIDIA_RESUME}!="enabled", GOTO="gdm_disable_wayland" +-IMPORT{program}="/bin/sh -c 'echo NVIDIA_SUSPEND=`systemctl is-enabled nvidia-suspend`'" +-ENV{NVIDIA_SUSPEND}!="enabled", GOTO="gdm_disable_wayland" + LABEL="gdm_nvidia_suspend_end" + LABEL="gdm_nvidia_end" + +@@ -76,41 +51,6 @@ ENV{GDM_NUMBER_OF_GRAPHICS_CARDS}=="1", RUN+="/usr/bin/rm -f /run/udev/gdm-machi + ENV{GDM_NUMBER_OF_GRAPHICS_CARDS}!="1", RUN+="/usr/bin/touch /run/udev/gdm-machine-has-hybrid-graphics" + LABEL="gdm_hybrid_graphics_check_end" + +-# If this is a hybrid graphics laptop with vendor nvidia driver, disable wayland +-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-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" +-GOTO="gdm_disable_wayland" +-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 +-LABEL="gdm_virt_passthrough_check" +-TEST!="/run/udev/gdm-machine-has-hybrid-graphics", GOTO="gdm_virt_passthrough_check_end" +-TEST!="/run/udev/gdm-machine-has-virtual-gpu", GOTO="gdm_virt_passthrough_check_end" +-TEST!="/run/udev/gdm-machine-has-hardware-gpu", GOTO="gdm_virt_passthrough_check_end" +-GOTO="gdm_disable_wayland" +-LABEL="gdm_virt_passthrough_check_end" +- +-# Disable wayland when there are multiple virtual gpus +-LABEL="gdm_virt_multi_gpu_check" +-TEST!="/run/udev/gdm-machine-has-hybrid-graphics", GOTO="gdm_virt_multi_gpu_check_end" +-TEST!="/run/udev/gdm-machine-has-virtual-gpu", GOTO="gdm_virt_multi_gpu_check_end" +-TEST=="/run/udev/gdm-machine-has-hardware-gpu", GOTO="gdm_virt_multi_gpu_check_end" +-LABEL="gdm_virt_multi_gpu_check_end" +- +-# Disable wayland when nvidia modeset is disabled +-KERNEL!="nvidia_drm", GOTO="gdm_nvidia_drm_end" +-SUBSYSTEM!="module", GOTO="gdm_nvidia_drm_end" +-ACTION!="add", GOTO="gdm_nvidia_drm_end" +-# disable wayland if nvidia-drm modeset is not enabled +-ATTR{parameters/modeset}!="Y", GOTO="gdm_disable_wayland" +-LABEL="gdm_nvidia_drm_end" +- +-GOTO="gdm_end" +- +-LABEL="gdm_disable_wayland" +-RUN+="@libexecdir@/gdm-runtime-config set daemon WaylandEnable false" + GOTO="gdm_end" + + LABEL="gdm_end" +-- +2.45.2 + diff --git a/gdm.spec b/gdm.spec index 71fe931..b3b4fff 100644 --- a/gdm.spec +++ b/gdm.spec @@ -21,7 +21,8 @@ Source5: default.pa-for-gdm Source6: gdm.sysusers # Downstream patches -Patch: 0001-udev-Stick-with-wayland-on-hybrid-nvidia-with-vendor.patch +Patch: 0001-data-Drop-unused-gdm_prefer_xorg-rule.patch +Patch: 0002-data-Drop-X11-fallback-rules.patch Patch: 0001-Honor-initial-setup-being-disabled-by-distro-install.patch Patch: 0001-data-add-system-dconf-databases-to-gdm-profile.patch Patch: 0001-xorg-detect.patch