Created attachment 187171 [details] Trimmed journal I tried connecting from my laptop to my PC and could only see a blank (sometime blue, sometime black) screen. The client was KRDC. This used to work several months ago. SOFTWARE/OS VERSIONS Operating System: Arch Linux KDE Plasma Version: 6.5.3 KDE Frameworks Version: 6.20.0 Qt Version: 6.10.0 Kernel Version: 6.17.8-arch1-1 (64-bit) Graphics Platform: Wayland Processors: 12 × AMD Ryzen 5 3600X 6-Core Processor Memory: 16 GiB of RAM (15.5 GiB usable) Graphics Processor: NVIDIA GeForce GTX 1660 (nividia-open driver) Manufacturer: Micro-Star International Co., Ltd. Product Name: MS-7B85 System Version: 1.0
I have updated the tittle to reflect what I think to be the issue. If nvidia-vaapi-driver is installed (https://github.com/elFarto/nvidia-vaapi-driver/), the issue will occur. It's strange since this was not a problem in the past. Without the driver installed, KRDP just fallback to using software encoding. I don't see a way to force KRDP to use software encoding, nor I can find a way to stop KRDP from using the driver.
You can force the software encoder with the environment variable KPIPEWIRE_FORCE_ENCODER=libx264 . As to the vaapi driver, KPipeWire prefers using hardware encoding if it is available. One possibility is that the vaapi driver now initializes correctly, which breaks KPipeWire's failure detection as that relies on the driver not properly initializing.
Created attachment 187209 [details] Trimmed journal when forcing libx264 (In reply to Arjen Hiemstra from comment #2) > You can force the software encoder with the environment variable KPIPEWIRE_FORCE_ENCODER=libx264 . Unfortunately, that did not work. I could see in the journal that libx264 was forced but the same "kwin_wayland[1072]: "DP-3" Received stream buffer that does not contain user data" error message still occurred. The only way to resolve this problem was to completely remove the driver. Which I would prefer not to as it allows Firefox to use hardware decoding.
Would just like to add to this with output from forcing the software encoder └─$ kinfo Operating System: Arch Linux KDE Plasma Version: 6.5.4 KDE Frameworks Version: 6.21.0 Qt Version: 6.10.1 Kernel Version: 6.17.9-arch1-1 (64-bit) Graphics Platform: Wayland Processors: 20 × Intel® Core™ Ultra 7 265K Memory: 64 GiB of RAM (62.2 GiB usable) Graphics Processor 1: NVIDIA GeForce RTX 4090/PCIe/SSE2 Graphics Processor 2: NVIDIA GeForce RTX 4090/PCIe/SSE2 └─$ KPIPEWIRE_FORCE_ENCODER=libx264 /usr/bin/krdpserver org.kde.krdp: Listening for connections on QHostAddress(QHostAddress::Any) 3390 qt.qpa.services: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not register app ID: App info not found for 'org.kde.krdp-server'") [22:28:47:359] [282158:00044e2e] [WARN][com.freerdp.core.rdp] - [log_build_warn][0x559355507de0]: ************************************************* [22:28:47:359] [282158:00044e2e] [WARN][com.freerdp.core.rdp] - [log_build_warn][0x559355507de0]: This build is using [experimental] build options: [22:28:47:359] [282158:00044e2e] [WARN][com.freerdp.core.rdp] - [log_build_warn][0x559355507de0]: * 'WITH_VAAPI=ON' [22:28:47:359] [282158:00044e2e] [WARN][com.freerdp.core.rdp] - [log_build_warn][0x559355507de0]: * [22:28:47:359] [282158:00044e2e] [WARN][com.freerdp.core.rdp] - [log_build_warn][0x559355507de0]: [experimental] build options might crash the application [22:28:47:359] [282158:00044e2e] [WARN][com.freerdp.core.rdp] - [log_build_warn][0x559355507de0]: ************************************************* org.kde.krdp: Session setup completed, start processing... org.kde.krdp: New client connected: UNIX platform Native X Server org.kde.krdp: Attempting authenticating user with PAM org.kde.krdp: PAM authentication succeeded for user "noah" QObject: Cannot create children for a parent that is in a different thread. (Parent is QApplication(0x7fffefd5cdd0), parent's thread is QThread(0x559355128400), current thread is QThread(0x7f5080001040) org.kde.krdp: Video stream initialized org.kde.krdp: Initializing Freedesktop Portal Session org.kde.krdp: Received caps: org.kde.krdp: RDPGFX_CAPVERSION_8 AVC: false YUV420: false org.kde.krdp: RDPGFX_CAPVERSION_81 AVC: true YUV420: true org.kde.krdp: RDPGFX_CAPVERSION_10 AVC: true YUV420: false org.kde.krdp: RDPGFX_CAPVERSION_101 AVC: true YUV420: false org.kde.krdp: RDPGFX_CAPVERSION_102 AVC: true YUV420: false org.kde.krdp: RDPGFX_CAPVERSION_103 AVC: true YUV420: false org.kde.krdp: RDPGFX_CAPVERSION_104 AVC: true YUV420: true org.kde.krdp: RDPGFX_CAPVERSION_105 AVC: true YUV420: true org.kde.krdp: RDPGFX_CAPVERSION_106 AVC: true YUV420: true org.kde.krdp: UNKNOWN_VERSION AVC: false YUV420: false org.kde.krdp: RDPGFX_CAPVERSION_107 AVC: true YUV420: true org.kde.krdp: Selected caps: RDPGFX_CAPVERSION_107 org.kde.krdp: Started Freedesktop Portal session kpipewire_vaapi_logging: VAAPI: VA-API NVDEC driver [direct backend] in use for device "/dev/dri/renderD128" kpipewire_record_logging: Forcing encoder to "libx264" [libx264 @ 0x7f505c061b00] -qscale is ignored, -crf is recommended. [libx264 @ 0x7f505c061b00] MB rate (33600000) > level limit (16711680) [libx264 @ 0x7f505c061b00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264 @ 0x7f505c061b00] profile Constrained Baseline, level 6.2, 4:2:0, 8-bit [22:29:13:213] [282158:00044e70] [ERROR][com.freerdp.core.transport] - [transport_read_layer]: BIO_read retries exceeded [22:29:13:213] [282158:00044e70] [ERROR][com.freerdp.core.peer] - [transport_read_layer]: ERRCONNECT_CONNECT_TRANSPORT_FAILED [0x0002000D] org.kde.krdp: Unable to check file descriptor org.kde.krdp: Closing session org.kde.krdp: Closing Freedesktop Portal Session ^C same issue - just figured I'd try and add some extra context. It does at least look like it uses the software encoding, but the behavior remains unchanged. I have also tried this on a 3070. Found this worked though (with logs) └─$ LIBVA_DRIVERS_PATH=/nonexistent \ LIBVA_DRIVER_NAME=dummy \ KPIPEWIRE_FORCE_ENCODER=libx264 \ /usr/bin/krdpserver org.kde.krdp: Listening for connections on QHostAddress(QHostAddress::Any) 3390 qt.qpa.services: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not register app ID: App info not found for 'org.kde.krdp-server'") [22:35:05:414] [284264:00045668] [WARN][com.freerdp.core.rdp] - [log_build_warn][0x5560d21cd900]: ************************************************* [22:35:05:414] [284264:00045668] [WARN][com.freerdp.core.rdp] - [log_build_warn][0x5560d21cd900]: This build is using [experimental] build options: [22:35:05:414] [284264:00045668] [WARN][com.freerdp.core.rdp] - [log_build_warn][0x5560d21cd900]: * 'WITH_VAAPI=ON' [22:35:05:414] [284264:00045668] [WARN][com.freerdp.core.rdp] - [log_build_warn][0x5560d21cd900]: * [22:35:05:414] [284264:00045668] [WARN][com.freerdp.core.rdp] - [log_build_warn][0x5560d21cd900]: [experimental] build options might crash the application [22:35:05:414] [284264:00045668] [WARN][com.freerdp.core.rdp] - [log_build_warn][0x5560d21cd900]: ************************************************* org.kde.krdp: Session setup completed, start processing... org.kde.krdp: New client connected: UNIX platform Native X Server org.kde.krdp: Attempting authenticating user with PAM org.kde.krdp: PAM authentication succeeded for user "noah" QObject: Cannot create children for a parent that is in a different thread. (Parent is QApplication(0x7fff1807f7d0), parent's thread is QThread(0x5560d1dee400), current thread is QThread(0x7f49e4001040) org.kde.krdp: Video stream initialized org.kde.krdp: Initializing Freedesktop Portal Session org.kde.krdp: Started Freedesktop Portal session kpipewire_vaapi_logging: VAAPI: Failed to initialize display kpipewire_vaapi_logging: VAAPI: Failed to initialize display kpipewire_vaapi_logging: DRM device not found org.kde.krdp: Received caps: org.kde.krdp: RDPGFX_CAPVERSION_8 AVC: false YUV420: false org.kde.krdp: RDPGFX_CAPVERSION_81 AVC: true YUV420: true org.kde.krdp: RDPGFX_CAPVERSION_10 AVC: true YUV420: false org.kde.krdp: RDPGFX_CAPVERSION_101 AVC: true YUV420: false org.kde.krdp: RDPGFX_CAPVERSION_102 AVC: true YUV420: false org.kde.krdp: RDPGFX_CAPVERSION_103 AVC: true YUV420: false org.kde.krdp: RDPGFX_CAPVERSION_104 AVC: true YUV420: true org.kde.krdp: RDPGFX_CAPVERSION_105 AVC: true YUV420: true org.kde.krdp: RDPGFX_CAPVERSION_106 AVC: true YUV420: true org.kde.krdp: UNKNOWN_VERSION AVC: false YUV420: false org.kde.krdp: RDPGFX_CAPVERSION_107 AVC: true YUV420: true org.kde.krdp: Selected caps: RDPGFX_CAPVERSION_107 kpipewire_record_logging: Forcing encoder to "libx264" [libx264 @ 0x7f49dc061dc0] -qscale is ignored, -crf is recommended. [libx264 @ 0x7f49dc061dc0] MB rate (33600000) > level limit (16711680) [libx264 @ 0x7f49dc061dc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264 @ 0x7f49dc061dc0] profile Constrained Baseline, level 6.2, 4:2:0, 8-bit kpipewire_dmabuf_logging: eglChooseConfig returned this many configs: 1 [22:35:18:775] [284264:000456ab] [ERROR][com.freerdp.core.transport] - [transport_read_layer]: BIO_read retries exceeded [22:35:18:775] [284264:000456ab] [ERROR][com.freerdp.core.peer] - [transport_read_layer]: ERRCONNECT_CONNECT_TRANSPORT_FAILED [0x0002000D] org.kde.krdp: Unable to check file descriptor org.kde.krdp: Closing session org.kde.krdp: Closing Freedesktop Portal Session [libx264 @ 0x7f49dc061dc0] frame I:2 Avg QP:17.50 size:1294826 [libx264 @ 0x7f49dc061dc0] frame P:122 Avg QP:17.92 size: 7992 [libx264 @ 0x7f49dc061dc0] mb I I16..4: 100.0% 0.0% 0.0% [libx264 @ 0x7f49dc061dc0] mb P I16..4: 0.1% 0.0% 0.0% P16..4: 6.5% 0.0% 0.0% 0.0% 0.0% skip:93.5% [libx264 @ 0x7f49dc061dc0] coded y,uvDC,uvAC intra: 43.7% 39.7% 38.2% inter: 0.3% 6.1% 0.1% [libx264 @ 0x7f49dc061dc0] i16 v,h,dc,p: 54% 23% 17% 6% [libx264 @ 0x7f49dc061dc0] i8c dc,h,v,p: 72% 18% 7% 4% [libx264 @ 0x7f49dc061dc0] kb/s:229978.95 ^C cheers!