Color management with ICC v2.3 monitor profile broken with firefox 3.5 and later

RESOLVED INVALID

Status

()

Core
GFX: Color Management
RESOLVED INVALID
8 years ago
8 years ago

People

(Reporter: Guillaume Girard, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

788 bytes, application/octet-stream
Details
(Reporter)

Description

8 years ago
User-Agent:       Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.4) Gecko/20091028 Iceweasel/3.5.4 (Debian-3.5.4-1)
Build Identifier: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.4) Gecko/20091028 Iceweasel/3.5.4 (Debian-3.5.4-1)

Since Debian unstable has upgraded to Firefox 3.5, the color management setup I had stopped working and I got back oversatured colors on my wide-gamut monitor. I downgraded to Firefox 3.0.15 and got back colors respecting the monitor profile (after setting color management on again).

My current settings for color management are:
gfx.color_management.display_profile;/usr/share/color/icc/lprof-lp2475w-wide-gamut-RGB.icc
gfx.color_management.mode;1
gfx.color_management.rendering_intent;0

Since I read icc v4 profiles are not supported anymore, I checked and my monitor profile appears to be a v2.3 profile. I will try to attach it as soon as I find the option to do so.

I also tried the latest 3.7r1 nightly build and didn't get better results than with 3.5.4.

Reproducible: Always
(Reporter)

Comment 1

8 years ago
Created attachment 409524 [details]
Monitor color profile

Here is the monitor color profile I mentioned before.
Your profile is detected as bogus by firefox because it has negative tristimulus values.
Yeah this profile describes a device with an imaginary red primary. And the green and blue primaries are describing lasers they are so chromatic. There's no display that behaves this way.

What is the provenance of this display profile?
(Reporter)

Comment 4

8 years ago
LCMS Profiler. I did an eye-made profile because I have no hardware to do a color profile for me right now.

This profile worked in Firefox 3.0 (as in, the colors looked fine to an untrained eye), and all other apps I tried accept it (Gimp, geeqie). That said, they may all be using the same color management library.

If you don't mind describing what's wrong with the profile (what you said might be enough), that would help me post a bug to LCMS instead.
If this was not made with a measurement device, then chances are LCMS Profiler is grabbing the primaries using EDID. If so, then chances are one of the following is true:

1. The EDID information for the display is wrong. i.e. the manufacturer needs to go on a Japanese game show and humiliated. In 2009 there is no good excuse for releasing displays with bogus primaries stored in EDID, but it's still happening.

2. LCMS has a bug and is misinterpreting or maladapting the primaries in EDID reported by the display.

3. Some other API or service involved in obtaining EDID from the display (usually over DDCI) is incorrectly decoding or handing off the information for the primaries to LCMS.

Basically what's wrong with the display profile is that the RGB primaries in the profile are impossible. The CIEXYZ value for the red primary is describing a red value that isn't visible to human beings. The CIEXYZ values for the green and blue primaries for the display are so chromatic they couldn't possibly be for a consumer display (I'm unaware of any display, in any market, that has this kind of color gamut). They are so chromatic they'd practically have to be laser beams.

So the reason why it's not being used by current versions of Firefox is that we found a couple of display profiles with negative Z values for one of the primaries, and while there may be an argument for such a color space, it's definitely not going to describe the color space of a display.
(Reporter)

Comment 6

8 years ago
I guess if I go to the bottom of this problem, I will know more than I want to know about EDID and ICC profiles... 

So it might be the screen, the X driver, X itself, LCMS not asking X the right questions or LCMS being buggy despite X giving the correct answers. Just the kind of bug that sits between two systems and nobody wants to look at :-).

A short question: how did you get to know that firefox rejected the profile because it was invalid? Is that something that is visible somewhere when running a normal build? There is no feedback at all when specifying the profile in about:config.

Thanks for your help, I will close this bug as invalid.
Status: UNCONFIRMED → RESOLVED
Last Resolved: 8 years ago
Resolution: --- → INVALID
I'm confused. I thought it was supposed to show up in the Error Console, but I just set your display profile for my display, and I'm not getting an error in Error Console.

?
(In reply to comment #6)
> I guess if I go to the bottom of this problem, I will know more than I want to
> know about EDID and ICC profiles... 
> 
> So it might be the screen, the X driver, X itself, LCMS not asking X the right
> questions or LCMS being buggy despite X giving the correct answers. Just the
> kind of bug that sits between two systems and nobody wants to look at :-).
> 
> A short question: how did you get to know that firefox rejected the profile
> because it was invalid? Is that something that is visible somewhere when
> running a normal build? There is no feedback at all when specifying the profile
> in about:config.

I have a tool that I ran on the profile that does the same check that firefox does. We should perhaps make it clearer when we reject a profile, feel free to file a bug to that effect.
Never mind. I'm pretty sure that was only special or nightly builds that did this, not public releases.


(In reply to comment #7)
> I'm confused. I thought it was supposed to show up in the Error Console, but I
> just set your display profile for my display, and I'm not getting an error in
> Error Console.
> 
> ?
You need to log in before you can comment on or make changes to this bug.