Skip to content

Setting cm_fs_passthrough = 2 does not pass cm through when displaying HDR content in fullscreen #9817

Description

@holmes-software

Already reported ? *

  • I have searched the existing open and closed issues.

Regression?

Definitely a regression - something broke after update (requires bisect)

System Info and Hyprland Version

System/Version info
Hyprland 0.48.0 built from branch main at commit d1a59ec39eb4c0d6a7d3d38a26f8924e6bca5cef  (renderer: render tiled fading out above other tiled windows).
Date: Mon Mar 31 16:25:09 2025
Tag: v0.48.0-33-gd1a59ec3, commits: 5955
built against:
 aquamarine 0.8.0
 hyprlang 0.6.0
 hyprutils 0.5.2
 hyprcursor 0.1.12
 hyprgraphics 0.1.2


no flags were set


System Information:
System name: Linux
Node name: archy
Release: 6.13.8-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Sun, 23 Mar 2025 17:17:30 +0000


GPU information:
09:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] [1002:73bf] (rev c0) (prog-if 00 [VGA controller])


os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo


plugins:

Description

The cm_fs_passthrough doc says this:

cm_fs_passthrough | Passthrough color settings for fullscreen apps when possible. 0 - off, 1 - always, 2 - hdr only

So setting cm_fs_passthrough = 2, the expectation is that the cm is only passed through for a window that is fullscreen and when the window's content is HDR. However, when I playback an HDR video using MPV in fullscreen, I only see the video in SDR until I set cm_fs_passthrough = 1. My guess is the "hdr only" detection is not working when cm_fs_passthrough = 2 and that's why HDR content appears SDR until I set it to 1.

I did a git bisect of the issue and it gave me this result:

6ab5a0befb45e90eb45b8d6582e68d13147297dc is the first bad commit
commit 6ab5a0befb45e90eb45b8d6582e68d13147297dc
Author: UjinT34 <41110182+UjinT34@users.noreply.github.com>
Date:   Sat Mar 22 20:34:01 2025 +0300

    renderer: fix cm_fs_passthrough (#9698)

 src/config/ConfigDescriptions.hpp |  4 ++--
 src/config/ConfigManager.cpp      |  2 +-
 src/render/OpenGL.cpp             | 16 +++++++++-------
 src/render/Renderer.cpp           |  5 +++--
 4 files changed, 15 insertions(+), 12 deletions(-)

How to reproduce

  1. Set cm_fs_passthrough = 2
  2. Open an HDR video with mpv my_hdr_video and set the opened window to fullscreen. You can find the HDR video I used here.
  3. The content should be shown in HDR, but shows in SDR instead.

Attach not paste

  • I understand that all text files must be attached, and not pasted directly. If not respected, this issue will likely get closed as spam

Checklist of files to include below

  • Hyprland config - hyprctl systeminfo -c (always include)
  • Crash report (always include in case of crash)
  • Video (always include in case of a visual bug)
  • Logs (might contain useful info such as errors)

Additional info & File uploads

hyprland_config_dump.txt

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions