HDR in mpv has limited Dynamic Range when render:cm_enabled=true

Hyprland version
Hyprland 0.56.0 built from branch main at commit 91f29f23bb691462f8aa6171b964069aebc37910 clean (flake.lock: update, drop glaze version requirement).
Date: Tue Aug 4 23:10:08 2026
Tag: v0.56.0-77-g91f29f23b, commits: 7702

Libraries:
Hyprgraphics: built against 0.5.1, system has 0.5.1
Hyprutils: built against 0.14.0, system has 0.14.0
Hyprcursor: built against 0.1.13, system has 0.1.13
Hyprlang: built against 0.6.8, system has 0.6.8
Aquamarine: built against 0.14.0, system has 0.14.0

Version ABI string: 91f29f23bb691462f8aa6171b964069aebc37910_aq_0.14_hu_0.14_hg_0.5_hc_0.1_hlg_0.6
no flags were set

Describe your issue / feature…

Since the release of Hyprland 0.55.0, HDR playback in mpv hasn’t looked right. The display switches to HDR mode, but the displayed image appears tone mapped down to a peak of ~500 nits. Setting render:cm_enabled=false resolves the issue, allowing the video to display at the full 1000+ nits peak that my display supports, though color rendition doesn’t look quite as good without color management.

mpv is configured properly for HDR playback, and displays properly in KDE Plasma. In Hyprland, other HDR content such as youtube playback in Brave browser, or games like Cyberpunk 2077, all display HDR properly. mpv is the only application that I have found to be affected.

I have tried every possible combination of hdr/cm settings in hyprland, and fully disabling cm is the only way to get hdr to display properly from mpv.

Relevant mpv config:

vo=gpu-next
gpu-api=vulkan
gpu-context=waylandvk
hwdec=nvdec,auto
target-colorspace-hint-mode=source

Relevant hyprland.lua options:

hl.monitor_configs = {	
   samsung = {
		output = "desc:Samsung Display Corp. ATNA60HU01-0",
		mode = edp1_mode,
		position = "0x0",
		scale = 1.33,
		bitdepth = 10,
		cm = "dcip3",
		--icc = "/home/taylor/.local/share/color/icc/TPLCD_420B_Default.icm",
		supports_wide_color = 1,
		supports_hdr = 1,
		sdr_min_luminance = 0.005,
		sdr_max_luminance = 500,
		min_luminance = 0,
		max_luminance = 1067,
		max_avg_luminance = 496,
		--sdrbrightness=0.4,
		--sdrsaturation=1.2,
	},
}

hl.config({	
   render = {
		cm_enabled = true,
		direct_scanout = 1,
		cm_auto_hdr = 2,
		new_render_scheduling = true,
		use_fp16 = 1,
	},

	quirks = {
		prefer_hdr = 1,
	},
})

Anyone had a similar experience? I should mention that I am on a Legion 7 Pro laptop with a 5070Ti GPU. Display output is through the Intel Ultra 9 275HX, though switching my mux for Nvidia output doesn’t make a difference. I use a custom edid with a CTA-861 block added to get around the lack of DisplayID Block support. The CTA-861 block exactly mirrors the information in the CTA-861 portion of the DisplayID blocks.

edid-decoded.txt (7.0 KB)

This works perfectly and allows both Hyprland and KDE to detect my monitor’s HDR support without manually overriding in my monitor config. Disabling the custom edid also doesn’t make a difference.

I need help diagnosing this and figuring out whether this is a problem in Hyprland or mpv, or a simple config issue.