From 10c1e7892e6978ca2f88180a690aca700d34554d Mon Sep 17 00:00:00 2001 From: Xaver Hugl Date: Sun, 28 May 2023 20:10:27 +0200 Subject: [PATCH] backends/drm: use max frame average brightness instead of max brightness in HDR metadata Using the peak maximum brightness can cause displays to do more agressive tone mapping, which overall darkens the image without any reason. Instead, send the max fame average brightness, which the display can always do over the whole screen --- src/backends/drm/drm_pipeline.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backends/drm/drm_pipeline.cpp b/src/backends/drm/drm_pipeline.cpp index dbac31a9a6..ec8d9fea05 100644 --- a/src/backends/drm/drm_pipeline.cpp +++ b/src/backends/drm/drm_pipeline.cpp @@ -757,11 +757,11 @@ std::shared_ptr DrmPipeline::createHdrMetadata(NamedTransferFunction tr }, .white_point = {to16Bit(colorimetry.white.x()), to16Bit(colorimetry.white.y())}, // in nits - .max_display_mastering_luminance = uint16_t(std::round(metadata.desiredContentMaxLuminance)), + .max_display_mastering_luminance = uint16_t(std::round(metadata.desiredMaxFrameAverageLuminance)), // in 0.0001 nits .min_display_mastering_luminance = uint16_t(std::round(metadata.desiredContentMinLuminance * 10000)), // in nits - .max_cll = uint16_t(std::round(metadata.desiredContentMaxLuminance)), + .max_cll = uint16_t(std::round(metadata.desiredMaxFrameAverageLuminance)), .max_fall = uint16_t(std::round(metadata.desiredMaxFrameAverageLuminance)), }, };