Bug 504065

Summary: Kwin lacks icc_file support for wp_image_description_info_v1
Product: [Plasma] kwin Reporter: Shengyu Qu <wiagn233>
Component: colour-managementAssignee: KWin default assignee <kwin-bugs-null>
Status: CLOSED INTENTIONAL    
Severity: wishlist CC: wiagn233, xaver.hugl
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description Shengyu Qu 2025-05-11 16:56:41 UTC
SUMMARY

Currently, kwin's wp_image_description_info_v1 implementation doesn't support icc_file as it's not mandatory. However, this broke FIrefox's internal color management as it requires the ICC file of the monitor for SDR color management. So currently with Firefox 138 all SDR colors are limited to sRGB range. So we need to implement icc_file for kwin.
Comment 1 Zamundaaa 2025-05-12 20:26:29 UTC
Firefox will have to add support for parametric image descriptions. Even if we were to support the icc stuff from the protocol (which I'd really rather not), there simply isn't always an ICC profile to send.
Comment 2 Shengyu Qu 2025-05-13 00:32:22 UTC
(In reply to Zamundaaa from comment #1)
> Firefox will have to add support for parametric image descriptions. Even if
> we were to support the icc stuff from the protocol (which I'd really rather
> not), there simply isn't always an ICC profile to send.

I think wine would also need this feature as windows have similar api? https://learn.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-geticmprofilea
Comment 3 Zamundaaa 2025-05-13 13:28:16 UTC
Windows APIs don't change the information we have. If Wine needs ICC profiles for anything, they will have to generate them from parametric information.
Windows Advanced Color also doesn't support ICC profiles btw, they too generate profiles for backwards compatibility.
Comment 4 Shengyu Qu 2025-05-14 17:18:16 UTC
(In reply to Zamundaaa from comment #3)
> Windows APIs don't change the information we have. If Wine needs ICC
> profiles for anything, they will have to generate them from parametric
> information.
> Windows Advanced Color also doesn't support ICC profiles btw, they too
> generate profiles for backwards compatibility.

Windows have a blacklist for softwares that do self color management, and will automatically fall back to traditional color management implementation when ACM is enabled. https://learn.microsoft.com/en-us/windows/win32/wcs/advanced-color-icc-profiles#enabling-the-display-icc-compatibility-helper

Seems currently clients don’t have a method to get monitor’s detailed transfer curve data but only a curve name or power value, unless reading the ICC file? This might affect clients’ color space conversion quality.