HDMI-0 and DP-1 not detected on Fedora 31

As of an update I pulled in on Monday, monitors plugged into HDMI-0 and DP-1 are not detected i.e. they do not show up in the gnome display settings and remain inactive. However they are listed as displays in nvidia-settings.

The odd thing is DP-2 works: it shows up as a display in gnome settings. However, it’s not listed in nvidia-settings.

Before the update, I had all three monitors working with the built-in-display turned off, that is HDMI-0 and DP-1/2 enabled (both DPs with passive adapters).

The nvidia drivers were installed with RPM fusion https://rpmfusion.org/Howto/NVIDIA (akmod-nvidia) and I’ve copied the basic xorg config:

sudo cp /usr/share/X11/xorg.conf.d/nvidia.conf /etc/X11/xorg.conf.d/nvidia.conf

Here is my bug report log and relevant screenshots https://www.dropbox.com/s/t2294l5rubyivov/nvidia.tar.gz?dl=0.

Thanks for the help!

Rpmfusion switched to render offload mode which makes external monitors connected to the nvidia gpu unavailable. Please see the paragraph
NVIDIA PrimaryGPU Support
on how to revert to the previous behaviour.

You are amazing! Thank you! I did not think it would be that simple. Although I never would have found that myself.

For future reference, here is the nvidia xorg config with the PrimaryGPU option per https://rpmfusion.org/Howto/Optimus#NVIDIA_PrimaryGPU_Support

#This file is provided by xorg-x11-drv-nvidia
#Do not edit

Section "OutputClass"
	Identifier "nvidia"
	MatchDriver "nvidia-drm"
	Driver "nvidia"
	Option "PrimaryGPU" "yes"
	Option "AllowEmptyInitialConfiguration"
	Option "SLI" "Auto"
	Option "BaseMosaic" "on"

Section "ServerLayout"
	Identifier "layout"
	Option "AllowNVIDIAGPUScreens"

I’ve updated the rpmfusion howto to mention that case with external monitors.

But it would be nice to escalate the issue to NVIDIA to have the PrimaryGPU option enabled by default when external monitors are detected, so it doesn’t requires any configuration change.

I don’t think that’s possible since the PrimaryGPU option is an Xserver feature so the decision has (to) already been made when the driver gets initialized. Furthermore, there are more multi-gpu use cases than this one so it wouldn’t be wise to let a driver decide which gpu is primary. I, for one would be rather annoyed by this.


Well, either way. We are nearing 2020. Here we expect things to be auto-detected as appropriate.
I don’t want to argue on the implementation details.