mpv fullscreen video playback fails to pick 'direct-scanout path' when 'experimental_hdr=on'
Steps to reproduce
You need following steps to enable/disable this experimental hdr:
- press alt+f2, then in the prompt run 'lg'
- when that happens you get a "window" that appears from the top. in that window you get a javascript console, where you can run these js command line
- the drop-down thing is called "looking glass"
global.compositor.backend.get_monitor_manager().experimental_hdr = 'on'
global.compositor.backend.get_monitor_manager().experimental_hdr = 'off'
mpv fullscreen video playback:
mpv --hwdec=vaapi /home/linux/hdr_video.mp4 -fs
What happens
Found that it picks 'non-direct scanout path' during HDR video playback with 'experimental_hdr=on', however it correctly picks 'Direct scanout path' with 'experimental_hdr=off' i.e. when HDR is disabled. Tried these video playback with an MPV player in fullscreen.
Debug logs:
gnome-shell[1693]: RENDER: No direct scanout candidate: unredirect inhibited
Affected version
With latest Mutter/gnome-shell 44.0
Relevant logs, screenshots, screencasts etc.
experimental_hdr = 'on' -> non direct-scanout path logs
gnome-shell[1693]: RENDER: No direct scanout candidate: unredirect inhibited gnome-shell[1693]: BACKEND: Reusing back buffer(age=2) - repairing region: num rects: 2 gnome-shell[1693]: BACKEND: cogl_onscreen_swap_buffers (onscreen: 0x5572229fc4e0) gnome-shell[1693]: BACKEND: Acquiring device file '/dev/dri/card0' gnome-shell[1693]: KMS: Posting primary plane composite update for CRTC 80 (/dev/dri/card0) gnome-shell[1693]: KMS: [atomic] Processing update gnome-shell[1693]: KMS: [atomic] Setting colorspace to 2 on connector 249 (/dev/dri/card0) gnome-shell[1693]: KMS: [atomic] Setting connector 249 (/dev/dri/card0) property 'Colorspace' (256) to 9 gnome-shell[1693]: KMS: [atomic] Setting HDR metadata on connector 249 (/dev/dri/card0) gnome-shell[1693]: KMS: [atomic] Setting connector 249 (/dev/dri/card0) property 'HDR_OUTPUT_METADATA' (7) to 292 gnome-shell[1693]: KMS: [atomic] Assigning primary plane (31, /dev/dri/card0) to 291, 3840x2160+0+0 -> 3840x2160+0+0 gnome-shell[1693]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'FB_ID' (17) to 291 gnome-shell[1693]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'CRTC_ID' (20) to 80 gnome-shell[1693]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'SRC_X' (9) to 0.00 gnome-shell[1693]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'SRC_Y' (10) to 0.00 gnome-shell[1693]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'SRC_W' (11) to 3840.00 gnome-shell[1693]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'SRC_H' (12) to 2160.00 gnome-shell[1693]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'CRTC_X' (13) to 0 gnome-shell[1693]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'CRTC_Y' (14) to 0 gnome-shell[1693]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'CRTC_W' (15) to 3840 gnome-shell[1693]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'CRTC_H' (16) to 2160 gnome-shell[1693]: KMS: [atomic] Setting plane (31, /dev/dri/card0) rotation to 1 gnome-shell[1693]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'rotation' (33) to 1 gnome-shell[1693]: KMS: [atomic] Setting 2 damage clips on 31 gnome-shell[1693]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'FB_DAMAGE_CLIPS' (21) to 296 gnome-shell[1693]: KMS: [atomic] Committing update flags: ATOMIC_ALLOW_MODESET|PAGE_FLIP_EVENTexperimental_hdr = 'off' -> direct-scanout path logs
gnome-shell[1708]: KMS: Posting direct scanout update for CRTC 80 (/dev/dri/card0) gnome-shell[1708]: KMS: [atomic] Processing update gnome-shell[1708]: KMS: [atomic] Assigning primary plane (31, /dev/dri/card0) to 287, 3840x2160+0+0 -> 3840x2160+0+0 gnome-shell[1708]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'FB_ID' (17) to 287 gnome-shell[1708]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'CRTC_ID' (20) to 80 gnome-shell[1708]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'SRC_X' (9) to 0.00 gnome-shell[1708]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'SRC_Y' (10) to 0.00 gnome-shell[1708]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'SRC_W' (11) to 3840.00 gnome-shell[1708]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'SRC_H' (12) to 2160.00 gnome-shell[1708]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'CRTC_X' (13) to 0 gnome-shell[1708]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'CRTC_Y' (14) to 0 gnome-shell[1708]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'CRTC_W' (15) to 3840 gnome-shell[1708]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'CRTC_H' (16) to 2160 gnome-shell[1708]: KMS: [atomic] Setting plane (31, /dev/dri/card0) rotation to 1 gnome-shell[1708]: KMS: [atomic] Setting plane 31 (/dev/dri/card0) property 'rotation' (33) to 1 gnome-shell[1708]: KMS: [atomic] Committing update flags: ATOMIC_NONBLOCK|PAGE_FLIP_EVENTRelated MR !2879 (merged)
Edited by Naveen Kumar