From f07604d47b31005aa3bccfb146278d4757897682 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Thu, 26 Jun 2025 16:29:27 +0200 Subject: [PATCH] scene: adjust rendering primaries based on output image description --- types/scene/wlr_scene.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/types/scene/wlr_scene.c b/types/scene/wlr_scene.c index bb97a4dfb..7972c4cc1 100644 --- a/types/scene/wlr_scene.c +++ b/types/scene/wlr_scene.c @@ -2289,8 +2289,13 @@ bool wlr_scene_output_build_state(struct wlr_scene_output *scene_output, if (img_desc != NULL) { color_transform = wlr_color_transform_init_linear_to_inverse_eotf(img_desc->transfer_function); - wlr_color_primaries_from_named(&primaries_value, img_desc->primaries); - primaries = &primaries_value; + struct wlr_color_primaries zero_primaries = {0}; + if (memcmp(&img_desc->mastering_display_primaries, &zero_primaries, sizeof(zero_primaries)) != 0) { + primaries = &img_desc->mastering_display_primaries; + } else { + wlr_color_primaries_from_named(&primaries_value, img_desc->primaries); + primaries = &primaries_value; + } if (img_desc->mastering_luminance.min != 0 || img_desc->mastering_luminance.max != 0) { struct wlr_color_luminances default_lum = {0};