Bug 496346 - Wrong color depth by default, unable to modify it.
Summary: Wrong color depth by default, unable to modify it.
Status: RESOLVED NOT A BUG
Alias: None
Product: kwin
Classification: Plasma
Component: colour-management (show other bugs)
Version: 6.2.3
Platform: Fedora RPMs Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-11-16 14:39 UTC by lien092
Modified: 2024-11-18 21:51 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description lien092 2024-11-16 14:39:45 UTC
SUMMARY
Hi,
By default on Plasma my screen is stuck with 8bit per channel (24 bit color depth). From what i have searched on the internet, 10 bit per channel should be the default (https://invent.kde.org/plasma/kwin/-/commit/f2b29e3555955a3f3e72f3098454833b71cde06b) but it isn't on my hardware (KTC M27T20S).
On Windows and Hyprland (linux DE) everything works fine, 10bit is supported.

STEPS TO REPRODUCE
1. Just launching a 10bit color video's, test video's  
2. Using "drm_info" command

OBSERVED RESULT
Clearly visible gradient patterns (bars) on this test videos (https://www.avsforum.com/threads/10-bit-gradient-test-patterns.2269338/) and on Movies with a lot of dark scenes.

drm_info indicates (on Plasma) : Format: XRGB8888 (0x34325258)

 ├───Plane 5
    │   ├───Object ID: 70
    │   ├───CRTCs: {0}
    │   ├───Legacy info
    │   │   ├───FB ID: 152
    │   │   │   ├───Object ID: 152
    │   │   │   ├───Size: 2560×1440
    │   │   │   ├───Format: XRGB8888 (0x34325258)
    │   │   │   ├───Modifier: AMD(TILE_VERSION = GFX10_RBPLUS, TILE = GFX9_64K_R_X, PIPE_XOR_BITS = 4, PACKERS = 3) (0x0200000018801b03)
    │   │   │   └───Planes:
    │   │   │       └───Plane 0: offset = 0, pitch = 10240 bytes


EXPECTED RESULT
- no bars on the test videos.
- drm_info (from Hyprland): Format: XRGB2101010 (0x30335258)

    ├───Plane 5
    │   ├───Object ID: 70
    │   ├───CRTCs: {0}
    │   ├───Legacy info
    │   │   ├───FB ID: 152
    │   │   │   ├───Object ID: 152
    │   │   │   ├───Size: 2560×1440
    │   │   │   ├───Format: XRGB2101010 (0x30335258)
    │   │   │   ├───Modifier: AMD(TILE_VERSION = GFX10_RBPLUS, TILE = GFX9_64K_R_X, DCC, DCC_RETILE, DCC_INDEPENDENT_128B, DCC_MAX_COMPRESSED_BLOCK = 128B, DCC_CONSTANT_ENCODE, PIPE_XOR_BITS = 4, PACKERS = 3) (0x0200000018967b03)
    │   │   │   └───Planes:
    │   │   │       ├───Plane 0: offset = 0, pitch = 10240 bytes
    │   │   │       ├───Plane 1: offset = 15728640, pitch = 2560 bytes
    │   │   │       └───Plane 2: offset = 15790080, pitch = 2560 bytes

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
(available in the Info Center app, or by running `kinfo` in a terminal window)
Linux/KDE Plasma: Fedora Linux 40
KDE Plasma Version: 6.2.3
KDE Frameworks Version: 6.8.0
Qt Version: 6.7.2

ADDITIONAL INFORMATION
- "drm_info" indicate 10bit per channel on Hyprland not on Plasma.
- The env variable "KWIN_DRM_PREFER_COLOR_DEPTH=30" has no effect.
Comment 1 Zamundaaa 2024-11-17 00:42:18 UTC
KWin doesn't use formats without an alpha channel, the buffer that's getting scanned out in your drm_info output is from the app you have in fullscreen mode, and not from KWin.
What app did you test this with?
Comment 2 lien092 2024-11-17 14:44:22 UTC
(In reply to Zamundaaa from comment #1)
> KWin doesn't use formats without an alpha channel, the buffer that's getting
> scanned out in your drm_info output is from the app you have in fullscreen
> mode, and not from KWin.
> What app did you test this with?

drm_info shows the same result with or without any app open. My test are from multiple videos formats MKV and mp4 with the MPV app. It's visualy obvious, even with Vlc without HDR it's still visible.
I will put the full result of the drm_info here (with MPV on full screen and without:

- With MPV (https://pastebin.com/U1mHyeAV)
- Without MPV (https://pastebin.com/6d3MqExq)
Comment 3 Zamundaaa 2024-11-17 16:09:27 UTC
Please attach the output of
> env | grep KWIN
Comment 4 lien092 2024-11-18 00:26:15 UTC
> KWIN_DRM_NO_AMS=1
> KWIN_DRM_PREFER_COLOR_DEPTH=30
Comment 5 Zamundaaa 2024-11-18 21:05:24 UTC
> KWIN_DRM_NO_AMS=1
legacy mode can't do more than 8 bits per color. Remove the override, and it'll use 10bpc.
Comment 6 lien092 2024-11-18 21:51:59 UTC
(In reply to Zamundaaa from comment #5)
> > KWIN_DRM_NO_AMS=1
> legacy mode can't do more than 8 bits per color. Remove the override, and
> it'll use 10bpc.

OMG thank u so much, that was it.