Package: krdp
Version: 6.3.5-1
Severity: important

Dear Maintainer,

Using krdc as the client, and krdp as the server, I cannot send any input:
neither mouse nor keyboard events are forwarded to the remote Wayland session.

I have done some preliminary debugging, and I suspect this may be related to
Debian packaging, so I'd like to consult with the experts here before possibly
wasting upstream's time.

The long story short is: I can get this working by modifying 
PortalSession::sendEvent
and removing the test that encodedStream->isActive().  The code handling stream
activation (in kpipewire) has had an upstream commit applied to it, hence I am
bringing it to Debian first.

If I am reading PipeWireBaseEncodedStream::start in the kpipewire source code
correctly, there is supposed to be some callback in kpipewire
that sends PipeWireProduce::started which will cause m_active to be set to true.

Presumably, that m_produceThread never returns that value.

In particular, on the remote side I'm getting output like:

kpipewire_vaapi_logging: VAAPI: profile 14 is not supported by the device 
"/dev/dri/renderD128"
kpipewire_vaapi_logging: VAAPI: profile 14 is not supported by the device 
"/dev/dri/renderD128"
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
org.kde.krdp: New client connected:  Unspecified platform Unspecified version
org.kde.krdp: Video stream initialized
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
[AVHWDeviceContext @ 0x7f21d4059ac0] libva: 
/usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed

Is it possible that this initialization failure is preventing the active state 
from being set?
I'd really rather not start recompiling libraries to figure that out.  The 
above could just be
a red-herring, and something else is preventing PipeWireProduce::started from 
being sent.

In any case, I'm happy to try out other patches.  I'd also be curious to know 
if this problem is
unique to me, or if other people are experiencing this.  In particular, this is 
different
from 1093137, because only the keyboard is broken in that bug (whereas all 
input is being blocked
because isActive is false in my case).

I'm additionally puzzled that simply removing the isActive guard worked 
(shouldn't a bunch of
other things be broken if the pipewire stream didn't start correctly?).

Any help is appreciated.

Best,
Antonio Russo

Reply via email to