SUMMARY Night Color causes green tint in HDR highlights on Wayland when enabled STEPS TO REPRODUCE 1. Activate Night Color 2. Display HDR content (such as an unresponsive window) OBSERVED RESULT Bright HDR regions (specular highlights, skies) display with unnatural greenish tint Issue disappears immediately when Night Color is disabled EXPECTED RESULT Night Color temperature adjustment should not affect HDR color accuracy HDR highlights should maintain correct color balance regardless of Night Color state SOFTWARE/OS VERSIONS Linux/KDE Plasma: KDE Plasma Version: 6.4.1 KDE Frameworks Version: 6.15.0 Qt Version: 6.9.1 ADDITIONAL INFORMATION Reproducible: Always GPU: AMD Radeon Vega Mobile Series [Integrated] of Ryzen R7 5800H Display: CSO1602
Can confirm. I haven't been able to narrow down where exactly that would happen, but afaict at some point in the pipeline we must be clipping to rgb of the actual display capabilities, instead of rgb with the white point for night light. The result is normal white, which in comparison to the rest of the display looks very green.
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/8353
Git commit d70ee5efc9d6b856a067ed284896481cd59a91ac by Xaver Hugl. Committed on 05/11/2025 at 14:01. Pushed by zamundaaa into branch 'master'. opengl/colormanagement: also clip after tonemapping With night light, the maximum luminance that can be represented in the buffer without color shifts is lower than the value represented by 1.0. When writing into the buffer, OpenGL implicitly clips for us to 1.0, so we end up with an out of bounds value, which ends up causing color shifts when the result is converted to a different white point. To avoid that, explicitly clip to the maximum luminance after tonemapping. M +1 -0 src/core/colorpipeline.cpp M +5 -3 src/opengl/colormanagement.glsl https://invent.kde.org/plasma/kwin/-/commit/d70ee5efc9d6b856a067ed284896481cd59a91ac
Git commit 6acc3934dccf5b4d2618ab04cca064b3d67bd1c2 by Xaver Hugl. Committed on 05/11/2025 at 17:43. Pushed by zamundaaa into branch 'Plasma/6.5'. opengl/colormanagement: also clip after tonemapping With night light, the maximum luminance that can be represented in the buffer without color shifts is lower than the value represented by 1.0. When writing into the buffer, OpenGL implicitly clips for us to 1.0, so we end up with an out of bounds value, which ends up causing color shifts when the result is converted to a different white point. To avoid that, explicitly clip to the maximum luminance after tonemapping. (cherry picked from commit d70ee5efc9d6b856a067ed284896481cd59a91ac) Co-authored-by: Xaver Hugl <xaver.hugl@kde.org> M +1 -0 src/core/colorpipeline.cpp M +5 -3 src/opengl/colormanagement.glsl https://invent.kde.org/plasma/kwin/-/commit/6acc3934dccf5b4d2618ab04cca064b3d67bd1c2