https://bugs.kde.org/show_bug.cgi?id=512622

            Bug ID: 512622
           Summary: Cursor should not be included in the stream cast
                    stream if cursor mode is METADATA
    Classification: Plasma
           Product: kwin
      Version First 6.3.6
       Reported In:
          Platform: Debian testing
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: screencasting
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

Created attachment 187178
  --> https://bugs.kde.org/attachment.cgi?id=187178&action=edit
A screen video showing the cursor being rendered twice

***
If you're not sure this is actually a bug, instead post about it at
https://discuss.kde.org

If you're reporting a crash, attach a backtrace with debug symbols; see
https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports

Please remove this comment after reading and before submitting - thanks!
***

SUMMARY

This is what [the
spec](https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.ScreenCast.html#org-freedesktop-portal-screencast-availablecursormodes)
says. Chrome Remote Desktop renders the cursor on the client side, so the
current behavior on KDE results in the cursor being rendered twice. See
attached video.


STEPS TO REPRODUCE
1. Create an [XDG RemoteDesktop
session](https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.RemoteDesktop.html#org-freedesktop-portal-remotedesktop-createsession)
2. Call
[ScreenCast.SelectSources](https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.ScreenCast.html#org-freedesktop-portal-screencast-selectsources),
use `VIRTUAL` as the types and `METADATA` as the cursor_mode.
3. Do the rest of the setup, i.e. start remote desktop session and connect
PipeWire

OBSERVED RESULT

The cursor image is available via the PipeWire metadata, but it is also
rendered onto the desktop frames.

EXPECTED RESULT

It should only be included in the metadata and never be rendered onto the
desktop frames. This is what the spec says. Failing that results in the cursor
being rendered twice.

SOFTWARE/OS VERSIONS
Operating System: Linux
KDE Plasma Version: 6.3.6
KDE Frameworks Version: 6.13.0
Qt Version: 6.8.2
Graphics Platform: offscreen


ADDITIONAL INFORMATION

It seems xdg-desktop-portal-kde ([code]) never plumbs the `cursor_mode` field
through kwin. It is hardcoded to METADATA, which is exactly what I passed in
anyway, so that's not the problem (or it could be someone else's problem).

Looking at the [kwin code here], `ScreencastV1Interface::Embedded` and
`ScreencastV1Interface::Metadata` are handled the same way, so I assume the
implementation would both show the cursor and include it in the metadata. These
two enums should probably be handled separately.

[code]:
https://github.com/KDE/xdg-desktop-portal-kde/blob/6f1ea2a49ad94cc2c350f1fb086b0541498e1e6e/src/remotedesktop.cpp#L182
[kwin code here]:
https://github.com/KDE/kwin/blob/68bae427b5668f6f52ed27b5b841d9cf0c6ef71b/src/plugins/screencast/screencaststream.cpp#L447

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to