No direct scanout on mutter 46.rc with waylandsink
Describe your issue
Mutter 46 introduces direct scanout for cropped and scaled surfaces, as long as they're fullscreen. This can be confirmed with mpv
, gtk4 and even programs which are not capable of direct video playback yet, such as Firefox. However, gstreamer's waylandsink
does not follow the same behavior and always fails to allow direct scanout. Since it's the exception, rather than the norm, I believe the problem is on waylandsink
.
Expected Behavior
No 3D engine use registered from the compositor while the window is fullscreen (shown as systemd):
Observed Behavior
Compositor shows 3D engine being used, even if waylandsink
is set to fullscreen:
Setup
- Operating System: Fedora Workstation 41 (Rawhide)
- Device: Computer
- GStreamer Version: 1.24.0
Steps to reproduce the bug
- Watch
intel_gpu_top
(or other similar tool) in a separate device, overssh
. - Run the following command with
mpv
(master):
mpv --hwdec=vaapi --vo=dmabuf-wayland sintel_trailer-1080p.mp4 --fs
- There should be no 3D engine usage.
- Now run the following example pipeline:
gst-launch-1.0 filesrc location=sintel_trailer-1080p.mp4 ! qtdemux ! h264parse ! vah264dec ! waylandsink fullscreen=1
- 3D engine usage from the compositor is registered.
How reproducible is the bug?
Always.
Screenshots if relevant
Solutions you have tried
Forcefully disabling the cursor (no impact). Color convert to RGBA (no impact). Software decoding with openh264dec
(no impact). Using videotestsrc
(no impact).