Public bug reported:

Summary
In the RDP handover daemon (gnome-remote-desktop-daemon --handover), the EGL 
thread fails to start, so neither VA-API nor Vulkan hardware acceleration is 
ever attempted. All AVC encoding falls back to software and costs about one 
full CPU core.

With EGL debug logging and a tracing shim, the failing sequence is:

eglGetPlatformDisplayEXT(EGL_PLATFORM_WAYLAND_EXT, NULL, NULL) returns a valid 
display and eglInitialize succeeds (EGL 1.5).
eglGetPlatformDisplayEXT(EGL_PLATFORM_DEVICE_EXT, EGL_NO_DEVICE_EXT /* NULL */, 
NULL) returns EGL_NO_DISPLAY with EGL_BAD_PARAMETER. Mesa logs EGL user error 
0x300c (EGL_BAD_PARAMETER) in eglGetPlatformDisplay.
The daemon logs Failed to create EGL thread: Failed to get EGL display.
The daemon never calls eglQueryDevicesEXT, so the NULL device does not come 
from a failed device enumeration. It is passed to the DEVICE platform as NULL, 
which Mesa rejects.

A standalone test in the same user session does not fail. It creates the
Wayland-platform display, queries EGL_DEVICE_EXT on it (valid device
returned), and calls the DEVICE platform with that device (works). So
Mesa can provide the device in this session. I do not know why the
daemon ends up with NULL.

Environment
Item    Value
OS      Ubuntu 26.04.1 LTS, kernel 7.0.0-38-generic
GNOME   gnome-shell 50.1-0ubuntu1.3, mutter-common 50.1-0ubuntu2.4
gnome-remote-desktop    50.2-0ubuntu0.1
FreeRDP libfreerdp3 3.32.0
Mesa    26.0.8-1ubuntu0.3 (libegl-mesa0, libgl1-mesa-dri, mesa-libgallium)
libepoxy / libglvnd     1.5.10-2build1 / 1.7.0-3
GPU     AMD Radeon RX 550 (Polaris12), PCI 1002:699f, radeonsi, RADV
Session Wayland, RDP remote login via the system daemon, handover to the user 
session (gnome-remote-desktop-handover.service)
RDP client      Remmina (FreeRDP), AVC444 and AVC420 tried
The GPU meets the requirements the daemon checks:

VA-API (H.264 High, EncSlice): YUV420, CQP, all packed headers, EncMaxRefFrames 
l0=1.
Vulkan (RADV, API 1.4): timestampComputeAndGraphics, 
shaderZeroInitializeWorkgroupMemory, a compute+transfer queue family, 
external_memory_dma_buf, queue_family_foreign, and physical_device_drm.
Steps to reproduce
Enable RDP system-wide remote login with gnome-remote-desktop.
Connect with an RDP client (the user must not be logged in locally).
Read the handover daemon log: journalctl --user -u 
gnome-remote-desktop-handover.service
Starting the daemon with G_MESSAGES_DEBUG=all EGL_LOG_LEVEL=debug gives this 
log:

libEGL debug: using driver amdgpu for 11
libEGL debug: pci id for fd 11: 1002:699f, driver radeonsi
libEGL debug: No DRI config supports native format PIPE_FORMAT_R10G10B10X2_UNORM
  (... same message for 9 more formats ...)
libEGL debug: EGL user error 0x300c (EGL_BAD_PARAMETER) in eglGetPlatformDisplay
gnome-remote-desktop-daemon: Failed to create EGL thread: Failed to get EGL 
display
Trace of the EGL calls (from a small LD_PRELOAD shim that wraps 
eglGetPlatformDisplayEXT and eglInitialize):

eglGetPlatformDisplayEXT platform=0x31d8 (WAYLAND) native=(nil) -> 
0x760f2c070550 err=0x3000
eglInitialize dpy=0x760f2c070550 -> 1 (1.5) err=0x3000
eglGetPlatformDisplayEXT platform=0x313f (DEVICE)  native=(nil) -> (nil)        
    err=0x300c
Expected behavior
The EGL thread starts, then [HWAccel.Vulkan] and [HWAccel.VAAPI] initialize 
(the 50.2 NEWS says amdgpu hardware acceleration was fixed and enabled), and 
encoding runs on the GPU.

Actual behavior
No [HWAccel.*] line is ever logged.
The process has no /dev/dri/* fd left open, and radeonsi_drv_video and 
libvulkan_radeon are never loaded.
The daemon uses about 1.15 to 1.9 CPU cores for usr time (software encoding) on 
a mostly idle desktop.
Other observations
Across my runs, one handover daemon (started during the login) did not log the 
EGL error. Every daemon I restarted manually with systemctl --user restart 
gnome-remote-desktop-handover.service did. I did not find what differs between 
the two.
Remote (seat-less) sessions do not get a logind ACL on /dev/dri/card1, only on 
renderD128. Running eglinfo -p gbm in that session printed libEGL warning: 
failed to open /dev/dri/card1: Permission denied. Giving my user read access to 
card1 did not fix the daemon failure, so I treat this as a separate observation.
grdctl and gsettings expose no option to enable or disable hardware 
acceleration.
What I could not determine
Why the DEVICE platform call receives a NULL device. I did not read the daemon 
source and did not find which call produces the NULL between step 1 and step 2.
Whether this is a gnome-remote-desktop issue, a Mesa issue, or an interaction 
between them on Polaris.
Files available on request
Full journal log with debug enabled.
The standalone EGL test (egltest2.c, about 20 lines) that works in the same 
session.
The LD_PRELOAD tracing shim.

ProblemType: Bug
DistroRelease: Ubuntu 26.04
Package: gnome-remote-desktop 50.2-0ubuntu0.1
ProcVersionSignature: Ubuntu 7.0.0-38.38-generic 7.0.14
Uname: Linux 7.0.0-38-generic x86_64
ApportVersion: 2.34.1-0ubuntu0.1
Architecture: amd64
CasperMD5CheckResult: unknown
CurrentDesktop: ubuntu:GNOME
Date: Tue Oct  6 19:57:13 2026
InstallationDate: Installed on 2026-06-01 (127 days ago)
InstallationMedia: Ubuntu 26.04 "Resolute Raccoon" - Release amd64 (20260423.1)
ProcEnviron:
 LANG=pt_BR.UTF-8
 PATH=(custom, no user)
 SHELL=/bin/bash
 TERM=xterm-256color
 XDG_RUNTIME_DIR=<set>
SourcePackage: gnome-remote-desktop
UpgradeStatus: No upgrade log present (probably fresh install)

** Affects: gnome-remote-desktop (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug resolute wayland-session

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2169775

Title:
  gnome-remote-desktop 50.2: "Failed to create EGL thread: Failed to get
  EGL display" on AMD Polaris (RX 550), hardware acceleration never
  initializes

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gnome-remote-desktop/+bug/2169775/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to