From 245dafe8118dc46609629f5f70f2913393c9fe7f Mon Sep 17 00:00:00 2001 From: Sebastian Wick Date: Tue, 17 Sep 2024 17:20:57 +0200 Subject: [PATCH] color-device: Set the color state to BT2020+PQ when HDR is forced Sets the color state of all monitors to BT2020+PQ even if the monitor isn't accpeting such a signal. Part-of: --- src/backends/meta-color-device.c | 7 +++++++ src/backends/meta-monitor-manager.c | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/src/backends/meta-color-device.c b/src/backends/meta-color-device.c index 849099596..aa4c6780e 100644 --- a/src/backends/meta-color-device.c +++ b/src/backends/meta-color-device.c @@ -697,6 +697,13 @@ update_color_state (MetaColorDevice *color_device) colorspace = get_color_space_from_monitor (monitor); eotf = get_eotf_from_monitor (monitor); + if (meta_debug_control_is_hdr_forced (debug_control)) + { + colorspace = CLUTTER_COLORSPACE_BT2020; + eotf.type = CLUTTER_EOTF_TYPE_NAMED; + eotf.tf_name = CLUTTER_TRANSFER_FUNCTION_PQ; + } + luminance = clutter_eotf_get_default_luminance (eotf); reference_luminance_factor = diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c index eb5907469..817caf726 100644 --- a/src/backends/meta-monitor-manager.c +++ b/src/backends/meta-monitor-manager.c @@ -1288,6 +1288,10 @@ on_started (MetaContext *context, G_CALLBACK (meta_monitor_manager_reconfigure), monitor_manager, NULL, G_CONNECT_SWAPPED | G_CONNECT_AFTER); + g_signal_connect_data (debug_control, "notify::force-hdr", + G_CALLBACK (meta_monitor_manager_reconfigure), + monitor_manager, NULL, + G_CONNECT_SWAPPED | G_CONNECT_AFTER); g_signal_connect_data (debug_control, "notify::force-linear-blending", G_CALLBACK (meta_monitor_manager_reconfigure), monitor_manager, NULL,