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