nvidia-drm: Failed to initialise accelerated framebuffer sharing: No EGL display (dual GPU configuration)
Affected version
UPDATE: Turns out this only affects GDM. Stopping the GDM service and starting a gnome-session directly from the console works as expected. I probably should have posted this as a GDM issue.
Fedora 39
Gnome 45.1
Kernal 6.5.12-300.fc39.x86_64
nVidia driver 535.129.03
Bug summary
Steps to reproduce
I have a multiple GPU setup on this machine, running Fedora 39
The primary interface is an RX 580 running amdgpu drivers The secondary interface is a GTX 960 running one of nvidia (proprietary) or nouveau as required
I have multiple boot profiles to blacklist the appropriate drivers depending on my needs. I'm using systemd-boot
Note that when I boot with multiple drivers, I do not encounter this particular issue eg: nvidia + amdgpu nouveau + amdgpu
The below issue occurs only when booting with nvidia (proprietary) drivers and all others blacklisted (amdgpu,nouveau)
What happened
GDM failed to initialise the primary framebuffer, reporting "No EGL display"
Nov 25 12:38:58 fender-local gnome-shell[1914]: Running GNOME Shell (using mutter 45.1) as a Wayland display server
Nov 25 12:38:59 fender-local rtkit-daemon[992]: Successfully made thread 1932 of process 1914 (/usr/bin/gnome-shell) owned by '42' RT at priority 20.
Nov 25 12:38:59 fender-local gnome-shell[1914]: Made thread 'KMS thread' realtime scheduled
Nov 25 12:38:59 fender-local gnome-shell[1914]: Device '/dev/dri/card0' prefers shadow buffer
Nov 25 12:38:59 fender-local gnome-shell[1914]: Added device '/dev/dri/card0' (nvidia-drm) using atomic mode setting.
Nov 25 12:38:59 fender-local gnome-shell[1914]: Failed to initialize accelerated iGPU/dGPU framebuffer sharing: No EGL display
Nov 25 12:38:59 fender-local gnome-shell[1914]: Created gbm renderer for '/dev/dri/card0'
Nov 25 12:38:59 fender-local gnome-shell[1914]: Boot VGA GPU /dev/dri/card0 selected as primary
Nov 25 12:38:59 fender-local org.gnome.Shell.desktop[1914]: Failed to setup: The GPU /dev/dri/card0 chosen as primary is not supported by EGL.
Nov 25 12:38:59 fender-local gnome-session[1902]: gnome-session-binary[1902]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
Nov 25 12:38:59 fender-local gnome-session-binary[1902]: WARNING: App 'org.gnome.Shell.desktop' exited with code 1
Nov 25 12:38:59 fender-local gnome-session-binary[1902]: Unrecoverable failure in required component org.gnome.Shell.desktop
Nov 25 12:38:59 fender-local /usr/libexec/gdm-wayland-session[1901]: dbus-daemon[1901]: [session uid=42 pid=1901] Activating service name='ca.desrt.dconf' requested by ':1.2' (uid=42 pid=1902 comm="/usr/libexec/gnome-session-binary --autostart /usr" label="system_u:system_r:xdm_t:s0-s0:c0.c1023")
Nov 25 12:38:59 fender-local /usr/libexec/gdm-wayland-session[1901]: dbus-daemon[1901]: [session uid=42 pid=1901] Successfully activated service 'ca.desrt.dconf'
Nov 25 12:38:59 fender-local gdm-launch-environment][1805]: pam_unix(gdm-launch-environment:session): session closed for user gdm
Nov 25 12:38:59 fender-local audit[1805]: USER_END pid=1805 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:xdm_t:s0-s0:c0.c1023 msg='op=PAM:session_close grantors=pam_keyinit,pam_keyinit,pam_limits,pam_systemd,pam_unix,pam_umask acct="gdm" exe="/usr/libexec/gdm-session-worker" hostname=fender-local addr=? terminal=/dev/tty1 res=success'
Nov 25 12:38:59 fender-local audit[1805]: CRED_DISP pid=1805 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:xdm_t:s0-s0:c0.c1023 msg='op=PAM:setcred grantors=pam_permit acct="gdm" exe="/usr/libexec/gdm-session-worker" hostname=fender-local addr=? terminal=/dev/tty1 res=success'
Nov 25 12:38:59 fender-local gdm[1728]: Gdm: GdmDisplay: Session never registered, failing
Nov 25 12:38:59 fender-local systemd[1]: session-c1.scope: Deactivated successfully.
Nov 25 12:38:59 fender-local gdm[1728]: Gdm: Child process -1894 was already dead.
Nov 25 12:38:59 fender-local gdm[1728]: Gdm: GdmDisplay: Session never registered, failing
Nov 25 12:38:59 fender-local gdm[1728]: Gdm: Child process -1894 was already dead.
As a result, both GDM and Mutter fall back to X11 rather than Wayland.
What did you expect to happen
I expected the primary device to be initialised as normal and used to establish a Wayland session It isn't clear to me what might cause "No EGL display" to be reported
Failed to initialize accelerated iGPU/dGPU framebuffer sharing: No EGL display
Relevant logs, screenshots, screencasts etc.
Kernel options
ernel: Command line: initrd=\b15ac8eef3e44d67984d2034a33a47d4\6.5.12-300.fc39.x86_64\initrd quiet rhgb rd.driver.blacklist=n
ouveau,amdgpu modprobe.blacklist=nouveau,amdgpu nvidia-drm.modeset=1 systemd.machine_id=b15ac8eef3e44d67984d2034a33a47d4 fbcon=rotate:1
inxi (while running X11) reports
Graphics:
Device-1: NVIDIA GM204 [GeForce GTX 970] vendor: ASUSTeK driver: nvidia
v: 535.129.03 arch: Maxwell bus-ID: 01:00.0
Device-2: AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]
vendor: Sapphire Nitro+ driver: N/A arch: GCN-4 bus-ID: 02:00.0
Display: server: X.Org v: 1.20.14 with: Xwayland v: 23.2.2 driver: X:
loaded: nvidia unloaded: fbdev,modesetting,nouveau,vesa
gpu: nvidia,nvidia-nvswitch resolution: 1440x2560~60Hz
API: EGL v: 1.5 drivers: nvidia,swrast platforms:
active: gbm,x11,surfaceless,device inactive: wayland,device-1
API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 535.129.03
glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce GTX 970/PCIe/SSE2
API: Vulkan v: 1.3.268 drivers: nvidia,llvmpipe surfaces: xcb,xlib
devices: 2
My /dev/dri devices are showing as:
/dev/dri/by-path/pci-0000:01:00.0-card -> ../card0
/dev/dri/by-path/pci-0000:01:00.0-render -> ../renderD128
Relevant modules show only nvidia as loaded
# lsmod | grep -E 'nvidia|nouveau|amdgpu'
nvidia_drm 94208 9
nvidia_modeset 1556480 12 nvidia_drm
nvidia_uvm 3510272 0
nvidia 62758912 480 nvidia_uvm,nvidia_modeset
video 77824 2 asus_wmi,nvidia_modeset
I noticed this interesting section from eglinfo -B
indicating issues with Device #1
That makes sense given I've not loaded any drivers for that device, though I would have expected eglinfo to skip it entirely..
And it seems to provide an llvmpipe driver, perhaps this is confusing matters (?)
Device platform:
Device #0:
Platform Device platform:
EGL API version: 1.5
EGL vendor string: NVIDIA
EGL version string: 1.5
EGL client APIs: OpenGL_ES OpenGL
OpenGL core profile vendor: NVIDIA Corporation
OpenGL core profile renderer: NVIDIA GeForce GTX 970/PCIe/SSE2
OpenGL core profile version: 4.6.0 NVIDIA 535.129.03
OpenGL core profile shading language version: 4.60 NVIDIA
OpenGL compatibility profile vendor: NVIDIA Corporation
OpenGL compatibility profile renderer: NVIDIA GeForce GTX 970/PCIe/SSE2
OpenGL compatibility profile version: 4.6.0 NVIDIA 535.129.03
OpenGL compatibility profile shading language version: 4.60 NVIDIA
OpenGL ES profile vendor: NVIDIA Corporation
OpenGL ES profile renderer: NVIDIA GeForce GTX 970/PCIe/SSE2
OpenGL ES profile version: OpenGL ES 3.2 NVIDIA 535.129.03
OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.20
Device #1:
Platform Device platform:
libEGL warning: egl: failed to create dri2 screen
libEGL warning: egl: failed to create dri2 screen
eglinfo: eglInitialize failed
Device #2:
Platform Device platform:
EGL API version: 1.5
EGL vendor string: Mesa Project
EGL version string: 1.5
EGL client APIs: OpenGL OpenGL_ES
OpenGL core profile vendor: Mesa
OpenGL core profile renderer: llvmpipe (LLVM 16.0.6, 256 bits)
OpenGL core profile version: 4.5 (Core Profile) Mesa 23.2.1
OpenGL core profile shading language version: 4.50
OpenGL compatibility profile vendor: Mesa
OpenGL compatibility profile renderer: llvmpipe (LLVM 16.0.6, 256 bits)
OpenGL compatibility profile version: 4.5 (Compatibility Profile) Mesa 23.2.1
OpenGL compatibility profile shading language version: 4.50
OpenGL ES profile vendor: Mesa
OpenGL ES profile renderer: llvmpipe (LLVM 16.0.6, 256 bits)
OpenGL ES profile version: OpenGL ES 3.2 Mesa 23.2.1
OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.20
Relevant packages:
]# dnf list installed | grep -E 'xorg|amd|nvid|nouv'
abrt-addon-xorg.x86_64 2.17.1-3.fc39 @fedora-modular
akmod-nvidia.x86_64 3:535.129.03-1.fc39 @rpmfusion-nonfree-nvidia-driver
amd-gpu-firmware.noarch 20231111-1.fc39 @updates
amd-ucode-firmware.noarch 20231111-1.fc39 @updates
kmod-nvidia-6.5.10-200.fc38.x86_64.x86_64 3:535.129.03-1.fc38 @@commandline
kmod-nvidia-6.5.11-300.fc39.x86_64.x86_64 3:535.129.03-1.fc39 @@commandline
kmod-nvidia-6.5.12-300.fc39.x86_64.x86_64 3:535.129.03-1.fc39 @@commandline
nvidia-gpu-firmware.noarch 20231111-1.fc39 @updates
nvidia-persistenced.x86_64 3:535.129.03-1.fc39 @rpmfusion-nonfree-nvidia-driver
nvidia-settings.x86_64 3:535.129.03-1.fc39 @rpmfusion-nonfree-nvidia-driver
teamd.x86_64 1.32-1.fc39 @fedora-modular
xorg-x11-drv-amdgpu.x86_64 23.0.0-2.fc39 @fedora-modular
xorg-x11-drv-ati.x86_64 19.1.0-10.fc39 @fedora-modular
xorg-x11-drv-evdev.x86_64 2.10.6-14.fc39 @fedora-modular
xorg-x11-drv-fbdev.x86_64 0.5.0-13.fc39 @fedora-modular
xorg-x11-drv-intel.x86_64 2.99.917-56.20210115.fc39 @fedora-modular
xorg-x11-drv-libinput.x86_64 1.4.0-1.fc39 @fedora-modular
xorg-x11-drv-nouveau.x86_64 1:1.0.17-6.fc39 @fedora-modular
xorg-x11-drv-nvidia.x86_64 3:535.129.03-2.fc39 @rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia-cuda.x86_64 3:535.129.03-2.fc39 @rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia-cuda-libs.x86_64 3:535.129.03-2.fc39 @rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia-kmodsrc.x86_64 3:535.129.03-2.fc39 @rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia-libs.x86_64 3:535.129.03-2.fc39 @rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia-power.x86_64 3:535.129.03-2.fc39 @rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-openchrome.x86_64 0.6.400-6.20210215git5dbad06.fc39 @fedora-modular
xorg-x11-drv-qxl.x86_64 0.1.6-2.fc39 @fedora-modular
xorg-x11-drv-vesa.x86_64 2.5.0-6.fc39 @fedora-modular
xorg-x11-drv-vmware.x86_64 13.4.0-2.fc39 @fedora-modular
xorg-x11-drv-wacom.x86_64 1.2.0-2.fc39 @fedora-modular
xorg-x11-drv-wacom-serial-support.x86_64 1.2.0-2.fc39 @fedora-modular
xorg-x11-font-utils.x86_64 1:7.5-56.fc39 @fedora-modular
xorg-x11-fonts-ISO8859-1-100dpi.noarch 7.5-36.fc39 @fedora-modular
xorg-x11-proto-devel.noarch 2023.2-2.fc39 @fedora-modular
xorg-x11-server-Xorg.x86_64 1.20.14-26.fc39 @updates
xorg-x11-server-Xwayland.x86_64 23.2.2-1.fc39 @updates
xorg-x11-server-common.x86_64 1.20.14-26.fc39 @updates
xorg-x11-xauth.x86_64 1:1.1.2-4.fc39 @fedora-modular
xorg-x11-xinit.x86_64 1.4.2-1.fc39 @updates