New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 706662 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug

Blocking:
issue 667431



Sign in to add a comment

ICC Profile for compositor for first window created is incorrect.

Project Member Reported by jbau...@chromium.org, Mar 30 2017

Issue description

gfx::ICCProfile::FromBestMonitor() is only valid after gfx::ICCProfile::UpdateCachedProfilesOnBackgroundThread() runs. So the first renderer and window will probably have invalid color spaces.
 
Owner: ccameron@chromium.org
Status: Assigned (was: Unconfirmed)
ccameron, could you please triage?
Blocking: 667431
We'll need to keep an eye on this as we ship color correct rendering, but I don't think this will be fixed. In particular, we have two options

1. Make creating the renderer wait for UpdateCachedProfilesOnBackgroundThread to complete.
2. Create the first renderer with sRGB and update its color profile when UpdateCachedProfilesOnBackgroundThread completes.

I suspect that there will be resistance to [1] and no resistance to [2] (especially if we add a UMA histogram to know how often we actually create the renderer with no color space and we find it to be "infrequent"). That said, if this impacts things that we expose to the web (e.g, "are you on a HDR or WCG display"), that may shift the appetite towards [1].

I'll keep this open for now and put it as blocking on  issue 667431 .

Comment 3 by hubbe@chromium.org, Apr 10 2017

ICC profiles and HDR capabilities can change as you plug in monitors anyways, so (2) sounds like the right approach to me.

I spent a while today and yesterday trying to see if there is any way to get access to the ICC profile, or the color space parameters, without reading from the filesystem.

It is possible to not directly read from a file, by calling
  WcsGetDefaultColorProfile
which will give you a file name (hmm...), and then call
  OpenColorProfile
with arguments PROFILE_FILENAME and FILE_SHARE_READ. Which basically means "you're not reading from disk, but someone else is".

I'm finding myself in a slight analysis-paralysis about this. This will be much cleaner when it can be merged in with the display::Display code, but that's a sort-of-large refactor that I don't really have the appetite for right now.
Status: Fixed (was: Assigned)
This was fixed in https://codereview.chromium.org/2959423003 and  https://chromium-review.googlesource.com/564392

The first renderer and window may get a guess at the color space (sRGB), but they will get an update if the color space isn't sRGB (and only if it isn't).

Sign in to add a comment