https://bugs.kde.org/show_bug.cgi?id=515342
Bug ID: 515342
Summary: Server fails to initialize hardware encoding on AMD
hardware, falling back to CPU due to missing
hw_frames_ctx
Classification: Plasma
Product: KRdp
Version First 6.5.5
Reported In:
Platform: CachyOS
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: general
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Target Milestone: ---
SUMMARY
The KRDP server fails to utilize GPU hardware encoding on AMD hardware (Ryzen 5
5800H), defaulting to CPU-based libx264 encoding. The logs indicate a failure
to initialize the hardware frames context (hw_frames_ctx), preventing the video
stream from using the hardware-accelerated path.
STEPS TO REPRODUCE
Enable the KRDP server on a machine with AMD hardware encoding support (e.g.,
Ryzen 5 5800H).
Connect to the server using any of the following clients: KRDC (Linux), aRDP
(Android), or Thincast (Windows).
Inspect the server logs using journalctl -t krdpserver.
OBSERVED RESULT The server identifies hardware capabilities but fails during
filter creation, resulting in a fallback to software encoding regardless of the
client used.
Relevant Log Output:
Jan 31 23:25:10 cachyos-server krdpserver[1840]: Session setup completed, start
processing...
Jan 31 23:25:10 cachyos-server krdpserver[1840]: [23:25:10:221] [1840:0006f623]
[ERROR][com.freerdp.core.transport] - [transport_read_layer]: BIO_read returned
a system error 104: Connection reset by peer
Jan 31 23:25:10 cachyos-server krdpserver[1840]: [23:25:10:221] [1840:0006f623]
[ERROR][com.freerdp.core.peer] - [transport_read_layer]:
ERRCONNECT_CONNECT_TRANSPORT_FAILED [0x0002000D]
Jan 31 23:25:10 cachyos-server krdpserver[1840]: [23:25:10:221] [1840:00000730]
[WARN][com.freerdp.core.rdp] - [rdp_send_deactivate_all][0x559f0a8f9de0]:
rdpMcs::userId == 0, skip sending PDU_TYPE_DEACTIVATE_ALL
Jan 31 23:25:10 cachyos-server krdpserver[1840]: Unable to check file
descriptor
Jan 31 23:25:10 cachyos-server krdpserver[1840]: [23:25:10:221] [1840:00000730]
[ERROR][com.freerdp.core.transport] - [transport_default_write]:
BIO_should_retry returned an error: error:80000020:system library::Broken pipe
Jan 31 23:25:10 cachyos-server krdpserver[1840]: Closing session
Jan 31 23:25:10 cachyos-server krdpserver[1840]: QDBusConnection: error: could
not send message to service "org.freedesktop.portal.Desktop" path
"/org/freedesktop/portal/desktop" interface
"org.freedesktop.portal.RemoteDesktop" member "NotifyKeyboardKeycode":
Marshalling failed: Invalid object path passed in arguments
Jan 31 23:25:10 cachyos-server krdpserver[1840]: QDBusConnection: error: could
not send message to service "org.freedesktop.portal.Desktop" path
"/org/freedesktop/portal/desktop" interface
"org.freedesktop.portal.RemoteDesktop" member "NotifyKeyboardKeycode":
Marshalling failed: Invalid object path passed in arguments
Jan 31 23:25:10 cachyos-server krdpserver[1840]: QDBusConnection: error: could
not send message to service "org.freedesktop.portal.Desktop" path
"/org/freedesktop/portal/desktop" interface
"org.freedesktop.portal.RemoteDesktop" member "NotifyKeyboardKeycode":
Marshalling failed: Invalid object path passed in arguments
Jan 31 23:25:10 cachyos-server krdpserver[1840]: QDBusConnection: error: could
not send message to service "org.freedesktop.portal.Desktop" path
"/org/freedesktop/portal/desktop" interface
"org.freedesktop.portal.RemoteDesktop" member "NotifyKeyboardKeycode":
Marshalling failed: Invalid object path passed in arguments
Jan 31 23:25:10 cachyos-server krdpserver[1840]: QDBusConnection: error: could
not send message to service "org.freedesktop.portal.Desktop" path
"/org/freedesktop/portal/desktop" interface
"org.freedesktop.portal.RemoteDesktop" member "NotifyKeyboardKeycode":
Marshalling failed: Invalid object path passed in arguments
Jan 31 23:25:10 cachyos-server krdpserver[1840]: QDBusConnection: error: could
not send message to service "org.freedesktop.portal.Desktop" path
"/org/freedesktop/portal/desktop" interface
"org.freedesktop.portal.RemoteDesktop" member "NotifyKeyboardKeycode":
Marshalling failed: Invalid object path passed in arguments
Jan 31 23:25:10 cachyos-server krdpserver[1840]: QDBusConnection: error: could
not send message to service "org.freedesktop.portal.Desktop" path
"/org/freedesktop/portal/desktop" interface
"org.freedesktop.portal.RemoteDesktop" member "NotifyKeyboardKeycode":
Marshalling failed: Invalid object path passed in arguments
Jan 31 23:25:10 cachyos-server krdpserver[1840]: QDBusConnection: error: could
not send message to service "org.freedesktop.portal.Desktop" path
"/org/freedesktop/portal/desktop" interface
"org.freedesktop.portal.RemoteDesktop" member "NotifyKeyboardKeycode":
Marshalling failed: Invalid object path passed in arguments
Jan 31 23:25:10 cachyos-server krdpserver[1840]: QDBusConnection: error: could
not send message to service "org.freedesktop.portal.Desktop" path "" interface
"org.freedesktop.portal.Session" member "Close": Object path cannot be empty
Jan 31 23:25:10 cachyos-server krdpserver[1840]: Closing Freedesktop Portal
Session
Jan 31 23:25:10 cachyos-server krdpserver[1840]: Session setup completed, start
processing...
Jan 31 23:25:13 cachyos-server krdpserver[1840]: New client connected: Windows
platform Windows NT
Jan 31 23:25:13 cachyos-server krdpserver[1840]: Attempting authenticating user
with PAM
Jan 31 23:25:13 cachyos-server krdpserver[456473]: pam_unix(login:account):
setuid failed: Operation not permitted
Jan 31 23:25:13 cachyos-server krdpserver[1840]: PAM authentication succeeded
for user "zack"
Jan 31 23:25:13 cachyos-server krdpserver[1840]: Video stream initialized
Jan 31 23:25:13 cachyos-server krdpserver[1840]: Initializing Freedesktop
Portal Session
Jan 31 23:25:13 cachyos-server krdpserver[1840]: Started Freedesktop Portal
session
Jan 31 23:25:13 cachyos-server krdpserver[1840]: Received caps:
Jan 31 23:25:13 cachyos-server krdpserver[1840]: RDPGFX_CAPVERSION_8 AVC:
false YUV420: false
Jan 31 23:25:13 cachyos-server krdpserver[1840]: RDPGFX_CAPVERSION_81 AVC:
false YUV420: false
Jan 31 23:25:13 cachyos-server krdpserver[1840]: RDPGFX_CAPVERSION_10 AVC:
true YUV420: false
Jan 31 23:25:13 cachyos-server krdpserver[1840]: RDPGFX_CAPVERSION_102 AVC:
true YUV420: false
Jan 31 23:25:13 cachyos-server krdpserver[1840]: RDPGFX_CAPVERSION_103 AVC:
true YUV420: false
Jan 31 23:25:13 cachyos-server krdpserver[1840]: RDPGFX_CAPVERSION_104 AVC:
true YUV420: true
Jan 31 23:25:13 cachyos-server krdpserver[1840]: RDPGFX_CAPVERSION_105 AVC:
true YUV420: true
Jan 31 23:25:13 cachyos-server krdpserver[1840]: RDPGFX_CAPVERSION_106 AVC:
true YUV420: true
Jan 31 23:25:13 cachyos-server krdpserver[1840]: Selected caps:
RDPGFX_CAPVERSION_106
Jan 31 23:25:13 cachyos-server krdpserver[1840]: [in @ 0x7f7210380b80] Setting
BufferSourceContext.pix_fmt to a HW format requires hw_frames_ctx to be
non-NULL!
Jan 31 23:25:13 cachyos-server krdpserver[1840]: Failed to create the buffer
filter
Jan 31 23:25:13 cachyos-server krdpserver[1840]: [libx264 @ 0x7f72112f7d80]
-qscale is ignored, -crf is recommended.
Jan 31 23:25:13 cachyos-server krdpserver[1840]: [libx264 @ 0x7f72112f7d80]
using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
Jan 31 23:25:13 cachyos-server krdpserver[1840]: [libx264 @ 0x7f72112f7d80]
profile Constrained Baseline, level 6.1, 4:2:0, 8-bit
Jan 31 23:25:13 cachyos-server krdpserver[1840]: eglChooseConfig returned this
many configs: 1
Jan 31 23:25:16 cachyos-server krdpserver[1840]: suspend frame ack
Jan 31 23:25:22 cachyos-server krdpserver[1840]: [23:25:22:787] [1840:0006f625]
[WARN][com.freerdp.api] - [peer_recv_data_pdu]: disconnect provider ultimatum
sent to peer, closing connection
Jan 31 23:25:22 cachyos-server krdpserver[1840]: [23:25:22:787] [1840:0006f625]
[ERROR][com.freerdp.core.transport] - [transport_check_fds]:
transport_check_fds: transport->ReceiveCallback() - STATE_RUN_QUIT_SESSION [-2]
Jan 31 23:25:22 cachyos-server krdpserver[1840]: Unable to check file
descriptor
Jan 31 23:25:22 cachyos-server krdpserver[1840]: Closing session
Jan 31 23:25:22 cachyos-server krdpserver[1840]: [23:25:22:796] [1840:00000730]
[ERROR][com.freerdp.core.transport] - [transport_default_write]:
BIO_should_retry returned an error: error:80000068:system library::Connection
reset by peer
Jan 31 23:25:22 cachyos-server krdpserver[1840]: [23:25:22:796] [1840:00000730]
[ERROR][com.freerdp.core.peer] - [transport_default_write]:
ERRCONNECT_CONNECT_TRANSPORT_FAILED [0x0002000D]
Jan 31 23:25:22 cachyos-server krdpserver[1840]: Closing Freedesktop Portal
Session
Jan 31 23:25:22 cachyos-server krdpserver[1840]: [libx264 @ 0x7f72112f7d80]
frame I:2 Avg QP:17.50 size: 76022
Jan 31 23:25:22 cachyos-server krdpserver[1840]: [libx264 @ 0x7f72112f7d80]
frame P:187 Avg QP:17.47 size: 1283
Jan 31 23:25:22 cachyos-server krdpserver[1840]: [libx264 @ 0x7f72112f7d80] mb
I I16..4: 100.0% 0.0% 0.0%
Jan 31 23:25:22 cachyos-server krdpserver[1840]: [libx264 @ 0x7f72112f7d80] mb
P I16..4: 0.7% 0.0% 0.0% P16..4: 2.0% 0.0% 0.0% 0.0% 0.0%
skip:97.4%
Jan 31 23:25:22 cachyos-server krdpserver[1840]: [libx264 @ 0x7f72112f7d80]
coded y,uvDC,uvAC intra: 10.2% 11.8% 4.5% inter: 0.2% 1.6% 0.0%
Jan 31 23:25:22 cachyos-server krdpserver[1840]: [libx264 @ 0x7f72112f7d80] i16
v,h,dc,p: 53% 23% 17% 7%
Jan 31 23:25:22 cachyos-server krdpserver[1840]: [libx264 @ 0x7f72112f7d80] i8c
dc,h,v,p: 79% 14% 6% 1%
Jan 31 23:25:22 cachyos-server krdpserver[1840]: [libx264 @ 0x7f72112f7d80]
kb/s:16587.85
EXPECTED RESULT
KRDP should correctly initialize the hw_frames_ctx for the FFmpeg/VA-API
pipeline, allowing the server to utilize GPU-based hardware encoding for the
RDP stream across all supported clients.
SOFTWARE/OS VERSIONS
Windows: Windows 11 Pro (Tested with Thincast client) Android: Tested with aRDP
client Linux/KDE Plasma: CachyOS (Tested with KRDC client) KDE Plasma Version:
6.5.5 KDE Frameworks Version: 6.22.0 Qt Version: 6.10.1
ADDITIONAL INFORMATION
Kernel Version: 6.18.7-2-cachyos
KRDP Version: 6.5.5-1.1
Graphics Platform: Wayland
Hardware: Beelink Mini PC (Ryzen 5 5800H with Radeon Graphics)
Notes: The behavior is consistent across Linux, Android, and Windows clients.
Hardware encoding (VA-API) is confirmed functional on this machine in other
applications like Jellyfin and FFmpeg.
--
You are receiving this mail because:
You are watching all bug changes.