https://bugs.kde.org/show_bug.cgi?id=527970
Bug ID: 527970
Summary: KRdp display corruption after switching clients
Classification: Plasma
Product: KRdp
Version First 6.8.2
Reported In:
Platform: Arch Linux
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: general
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Target Milestone: ---
DESCRIPTION
KRdp display corruption after switching clients bet
STEPS TO REPRODUCE
1. Start krdpserver and connect using Microsoft's iOS RDP client (not support
H.264).
2. Disconnect, then connect using a Windows RDP client (support H.264) without
restarting krdpserver.
OBSERVED RESULT
Krdp session displays correct graphics.
EXPECTED RESULT
Krdp session displays corrupted graphics.
SOFTWARE/OS VERSIONS
Operating System (available in the Info Center app, or by running `kinfo` in a
terminal window): Arch Linux
KDE Plasma Version: 6.8.2
KDE Frameworks Version: 6.31.0
Qt Version: 6.12.0
ADDITIONAL INFORMATION
Restarting krdpserver and connecting directly from Windows produces a normal
image.
I suspect the relevant transition is from a Progressive/rendering stream to an
H.264 hardware-encoding stream. The iOS session's negotiated codec has not been
confirmed.
I guess the problem is
PipeWireSourceStream::createFormatsParams()(https://invent.kde.org/plasma/kpipewire/-/blob/v6.8.2/src/pipewiresourcestream.cpp?ref_type=tags),
abbreviated below:
if (d->m_availableModifiers.isEmpty()) {
static QHash<spa_video_format, QList<uint64_t>> availableModifiers;
if (availableModifiers.isEmpty()) {
if (display != EGL_NO_DISPLAY) {
availableModifiers =
queryDmaBufModifiers(display, formats, d->usageHint);
}
// ...
}
d->m_availableModifiers = availableModifiers;
}
The query depends on display and usageHint, but its result is cached globally
and reused by subsequent streams.
--
You are receiving this mail because:
You are watching all bug changes.