Summary: | GStreamer with waylandsink: No video shown when rendered to child widget in Plasma Wayland session (works in Weston) | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | Michael Weghorn <m.weghorn> |
Component: | wayland-generic | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED UPSTREAM | ||
Severity: | normal | CC: | m.weghorn, nate |
Priority: | NOR | ||
Version: | 5.23.3 | ||
Target Milestone: | --- | ||
Platform: | Debian testing | ||
OS: | Linux | ||
URL: | https://bugreports.qt.io/browse/QTBUG-86229 | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
Sample program to reproduce the issue
Screencast demonstrating the issue |
Description
Michael Weghorn
2021-11-17 09:20:14 UTC
Created attachment 143653 [details]
Screencast demonstrating the issue
// child widget with video is NOT shown in Plasma Wayland session, but is shown in Weston
parentWidget->show();
videoWidget is not shown. kwin strictly follows the wayland spec regarding what subsurfaces should be considered mapped.
> A sub-surface becomes mapped, when a non-NULL wl_buffer is applied and the parent surface is mapped. The order of which one happens first is irrelevant. A sub-surface is hidden if the parent becomes hidden, or if a NULL wl_buffer is applied. These rules apply recursively through the tree of surfaces.
videoWidget has no buffer, so the subsurface created by gstreamer will be hidden. weston doesn't enforce visibility checks recursively so the overlay is visible even though it shouldn't be.
Whether it's a Qt bug is up to debate though.
|