Bug 496308 - Raised blacks when HDR is enabled
Summary: Raised blacks when HDR is enabled
Status: RESOLVED WORKSFORME
Alias: None
Product: kwin
Classification: Plasma
Component: colour-management (show other bugs)
Version: 6.2.1
Platform: openSUSE Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-11-15 16:12 UTC by Manuel Parent
Modified: 2024-12-12 16:33 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
edid-decode output (7.36 KB, text/plain)
2024-11-15 16:12 UTC, Manuel Parent
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Manuel Parent 2024-11-15 16:12:47 UTC
Created attachment 175846 [details]
edid-decode output

SUMMARY
Starting with Plasma 6.2.1, I've noticed raised blacks when HDR is enabled. I tested as high as KDE 6.2.3.

I use OpenSUSE Tumbleweed. For now, I've added a lock to kwin6 in zypper to stick with version 6.2.0-1.1. Note that I first noticed this issue in ArchLinux, so it is not distro-specific.

STEPS TO REPRODUCE
1. Enable HDR
2. Display anything that should be solid black (for instance, solid black desktop background)

OBSERVED RESULT
Blacks are slightly raised on an OLED monitor.

EXPECTED RESULT
Pixels should be off altogether.

SOFTWARE/OS VERSIONS
Kernel: 6.11.7-1.1
Kwin: 6.2.1+

ADDITIONAL INFORMATION
See attached EDID
Comment 1 Zamundaaa 2024-11-15 22:07:30 UTC
The only relevant commit in 6.2.1 vs 6.2.0 is the one that fixed bug 494128, so this is most likely caused by the minimum luminance being changed. First, please attach the output of
> kscreen-doctor -o
while HDR is enabled.

Afterwards, see if overriding the minimum luminance of your screen to be zero resolves the issue, like this:
> kscreen-doctor output.1.minBrightnessOverride.0
Comment 2 Manuel Parent 2024-11-15 22:50:54 UTC
Hello,

Here's the output of kscreen-doctor : 
> Output: 1 DP-3
>         enabled
>         connected
>         priority 1
>         DisplayPort
>         Modes:  1:3840x2160@60!  2:3840x2160@240*  3:3840x2160@180  4:3840x2160@120  5:2560x1440@240  6:2560x1440@120  7:2560x1440@60  8:1920x1200@60  9:1920x1080@240  10:1920x1080@120  11:1920x1080@120  12:1920x1080@120  13:1920x1080@60  14:1920x1080@60  15:1920x1080@60  16:1600x1200@60  17:1680x1050@60  18:1280x1024@75  19:1280x1024@60  20:1440x900@60  21:1280x800@60  22:1280x720@120  23:1280x720@120  24:1280x720@60  25:1280x720@60  26:1024x768@75  27:1024x768@70  28:1024x768@60  29:800x600@75  30:800x600@72  31:800x600@60  32:800x600@56  33:720x576@60  34:720x576@50  35:720x480@60  36:720x480@60  37:640x480@75  38:640x480@73  39:640x480@67  40:640x480@60  41:640x480@60  42:1600x1200@60  43:1280x1024@60  44:1024x768@60  45:2560x1600@60  46:1920x1200@60  47:1280x800@60  48:3840x2160@60  49:3200x1800@60  50:2880x1620@60  51:2560x1440@60  52:1920x1080@60  53:1600x900@60  54:1368x768@60  55:1280x720@60 
>         Geometry: 0,0 3840x2160
>         Scale: 1
>         Rotation: 1
>         Overscan: 0
>         Vrr: Never
>         RgbRange: unknown
>         HDR: enabled
>                 SDR brightness: 150 nits
>                 SDR gamut wideness: 0%
>                 Peak brightness: 1037 nits
>                 Max average brightness: 456 nits
>                 Min brightness: 0.0006 nits
>         Wide Color Gamut: enabled
>         ICC profile: none
>         Color profile source: sRGB
>         Brightness control: supported, set to 100%

And here's the output after overriding the minimum luminance (which does indeed solve the issue) :
> Output: 1 DP-3
>         enabled
>         connected
>         priority 1
>         DisplayPort
>         Modes:  1:3840x2160@60!  2:3840x2160@240*  3:3840x2160@180  4:3840x2160@120  5:2560x1440@240  6:2560x1440@120  7:2560x1440@60  8:1920x1200@60  9:1920x1080@240  10:1920x1080@120  11:1920x1080@120  12:1920x1080@120  13:1920x1080@60  14:1920x1080@60  15:1920x1080@60  16:1600x1200@60  17:1680x1050@60  18:1280x1024@75  19:1280x1024@60  20:1440x900@60  21:1280x800@60  22:1280x720@120  23:1280x720@120  24:1280x720@60  25:1280x720@60  26:1024x768@75  27:1024x768@70  28:1024x768@60  29:800x600@75  30:800x600@72  31:800x600@60  32:800x600@56  33:720x576@60  34:720x576@50  35:720x480@60  36:720x480@60  37:640x480@75  38:640x480@73  39:640x480@67  40:640x480@60  41:640x480@60  42:1600x1200@60  43:1280x1024@60  44:1024x768@60  45:2560x1600@60  46:1920x1200@60  47:1280x800@60  48:3840x2160@60  49:3200x1800@60  50:2880x1620@60  51:2560x1440@60  52:1920x1080@60  53:1600x900@60  54:1368x768@60  55:1280x720@60 
>         Geometry: 0,0 3840x2160
>         Scale: 1
>         Rotation: 1
>         Overscan: 0
>         Vrr: Never
>         RgbRange: unknown
>         HDR: enabled
>                 SDR brightness: 150 nits
>                 SDR gamut wideness: 0%
>                 Peak brightness: 1037 nits
>                 Max average brightness: 456 nits
>                 Min brightness: 0 nits, overridden with: 0 nits
>         Wide Color Gamut: enabled
>         ICC profile: none
>         Color profile source: sRGB
>         Brightness control: supported, set to 100%
Comment 3 Zamundaaa 2024-11-22 01:26:58 UTC
Okay. Is
> kscreen-doctor output.1.minBrightnessOverride.50
also sufficient to deal with this?
Comment 4 Manuel Parent 2024-11-25 23:31:33 UTC
(In reply to Zamundaaa from comment #3)
> Okay. Is
> > kscreen-doctor output.1.minBrightnessOverride.50
> also sufficient to deal with this?

Hello. Sorry for the delay. Yes, it does fix the issue. FYI, I tried several values to see at which point it happens, and the issue occurs when the value is 106 or more.
Comment 5 Zamundaaa 2024-11-26 00:49:54 UTC
This is very confusing. Just to be sure, if you disable the override again (kscreen-doctor output.1.minBrightnessOverride.disable), it also re-appears?
Comment 6 Manuel Parent 2024-11-26 00:58:54 UTC
(In reply to Zamundaaa from comment #5)
> This is very confusing. Just to be sure, if you disable the override again
> (kscreen-doctor output.1.minBrightnessOverride.disable), it also re-appears?

Weirdly enough, no. Even weirder, I set the brightness to 106 to force the bug. I then disabled the minBrightnessOverride, and it... fixes the issue. Honestly, I'm just confused at this point, because I got this issue on version 6.2.3, I said as much in the original ticket, but it's just gone. It's like I was in some weird state upon updating to latest kwin, and now it's just gone with the minBrightnessOverride fix.

FYI, I'm currently on kwin at version 6.2.3-1.1.
Comment 7 Bug Janitor Service 2024-12-11 03:46:35 UTC
🐛🧹 ⚠️ This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information, then set the bug status to REPORTED. If there is no change for at least 30 days, it will be automatically closed as RESOLVED WORKSFORME.

For more information about our bug triaging procedures, please read https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging.

Thank you for helping us make KDE software even better for everyone!
Comment 8 Zamundaaa 2024-12-12 16:33:26 UTC
I'm not sure what's going on here either. Let's just close the bug report, and if it happens again, reopen it