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.

Reply via email to