Chromium-on-Mac changing from Core Graphics to Skia tomorrow

287 views
Skip to first unread message

Elliot Poger

unread,
Sep 21, 2011, 6:07:20 PM9/21/11
to Chromium-dev
Sometime in the next 24-48 hours, I plan to commit a Chromium change that will change the default value of "use_skia" on Mac from 0 to 1.  This will cause the default graphics layer on Chromium-for-Mac from Apple's Core Graphics to our Skia library.

We already use Skia by default for Windows and Linux; this change will bring Mac in line with those other platforms.

If you run into any problems with this, please let me know... and you can set use_skia=0 to get the old functionality back (at least until we are satisfied that Skia is stable and happy).


Additional notes for those who are interested: (links will work for Googlers only, sorry about that)

This change will cause the accelerated canvas path to be enabled by default on the Mac.

We have been running the chromium.webkit buildbots against both Skia and CG for a couple of weeks now.  As of Wednesday afternoon, the Skia bots have been as green as the CG ones.  (We have marked a lot of tests as known-to-fail to greenify these tests; the vast majority of the failures just indicate baselines that need to be regenerated, but there may be a few real errors lurking in there... we already corrected some, but there may be more.)

I have a subset of the Chromium buildbots running locally, which I have been using to compare results with Skia vs CG.  They haven't been running as long as the chromium.webkit buildbots above, but so far so good...

There are further details about the transition process at http://goto.google.com/SkiaWebkitStatus



On Wed, Sep 21, 2011 at 5:08 PM, Elliot Poger <epo...@google.com> wrote:
Subject: Chromium-on-Mac changing from Core Graphics to Skia tomorrow

Sometime in the next 24-48 hours, I plan to commit a Chromium change that will change the default value of "use_skia" on Mac from 0 to 1.  This will cause the default graphics layer on Chromium-for-Mac from Apple's Core Graphics to our Skia library.

We already use Skia by default for Windows and Linux; this change will bring Mac in line with those other platforms.

If you run into any problems with this, please let me know--and you can set use_skia=0 to get the old functionality back (at least until we are satisfied that Skia is stable and happy).

P.S. This change will cause the accelerated canvas path to be enabled by default on the Mac.


Adam Barth

unread,
Sep 21, 2011, 6:11:18 PM9/21/11
to epo...@google.com, Chromium-dev
Yay! We should probably update the webkit-dev thread with this information too.

Adam

> --
> Chromium Developers mailing list: chromi...@chromium.org
> View archives, change email options, or unsubscribe:
> http://groups.google.com/a/chromium.org/group/chromium-dev
>

Peter Kasting

unread,
Sep 21, 2011, 9:00:23 PM9/21/11
to epo...@google.com, Chromium-dev
On Wed, Sep 21, 2011 at 3:07 PM, Elliot Poger <epo...@chromium.org> wrote:
Sometime in the next 24-48 hours, I plan to commit a Chromium change that will change the default value of "use_skia" on Mac from 0 to 1.  This will cause the default graphics layer on Chromium-for-Mac from Apple's Core Graphics to our Skia library.

We already use Skia by default for Windows and Linux; this change will bring Mac in line with those other platforms.

Can you point me at something which has info on how we're handling images with embedded color profiles?  Either we're going to regress that on Mac, or we're not going to regress it because the Skia pipeline can handle this stuff correctly in which case I want to make sure we get the benefits on Windows and Linux too.

PK

Cary Clark

unread,
Sep 22, 2011, 8:14:47 AM9/22/11
to pkas...@google.com, epo...@google.com, Chromium-dev
Peter

Support for images with embedded color profiles has been broken on Mac since Chrome 12 if not earlier. Skia doesn't regress in this area, but doesn't improve things either.

I have investigated supporting it in Skia. One attempt is documented here:


This works on all platforms, but is not complete.

Cary

--

Peter Kasting

unread,
Sep 22, 2011, 2:31:29 PM9/22/11
to Cary Clark, epo...@google.com, Chromium-dev
On Thu, Sep 22, 2011 at 5:14 AM, Cary Clark <cary...@chromium.org> wrote:
Support for images with embedded color profiles has been broken on Mac since Chrome 12 if not earlier.

That's sad.  I guess this is fallout from Adam changing us over from the CG image decoders to the Skia ones.  I had thought I'd made it clear that I didn't want us to regress this when we did that, but I guess we regressed it anyway :(
 
I have investigated supporting it in Skia. One attempt is documented here:


This works on all platforms, but is not complete.

 Thanks for your investigation.  I hope you (or someone else) has time to productize this soon.

PK

Adam Barth

unread,
Sep 22, 2011, 2:42:16 PM9/22/11
to pkas...@google.com, Cary Clark, epo...@google.com, Chromium-dev
On Thu, Sep 22, 2011 at 11:31 AM, Peter Kasting <pkas...@google.com> wrote:
> On Thu, Sep 22, 2011 at 5:14 AM, Cary Clark <cary...@chromium.org> wrote:
>> Support for images with embedded color profiles has been broken on Mac
>> since Chrome 12 if not earlier.
>
> That's sad.  I guess this is fallout from Adam changing us over from the CG
> image decoders to the Skia ones.  I had thought I'd made it clear that I
> didn't want us to regress this when we did that, but I guess we regressed it
> anyway :(

I'm sorry if I broke color profiles. That certainly wasn't my intent,
and I thought I had tested it. Do you have an example PNG or JPEG
that shows us screwing up color profiles?

Adam


>> I have investigated supporting it in Skia. One attempt is documented here:
>> http://code.google.com/p/chromium/issues/detail?id=37028#c26
>> This works on all platforms, but is not complete.
>
>  Thanks for your investigation.  I hope you (or someone else) has time to
> productize this soon.
> PK
>

Avi Drissman

unread,
Sep 22, 2011, 2:46:07 PM9/22/11
to aba...@chromium.org, pkas...@google.com, Cary Clark, epo...@google.com, Chromium-dev

Adam Barth

unread,
Sep 22, 2011, 2:58:57 PM9/22/11
to Avi Drissman, pkas...@google.com, Cary Clark, epo...@google.com, Chromium-dev
Thanks. I'll take a look in the debugger to see what went wrong.
(Although it's a bit a late now.)

Adam

Nico Weber

unread,
Sep 22, 2011, 3:51:32 PM9/22/11
to aba...@chromium.org, pkas...@google.com, Cary Clark, epo...@google.com, Chromium-dev
On Thu, Sep 22, 2011 at 11:42 AM, Adam Barth <aba...@chromium.org> wrote:
> On Thu, Sep 22, 2011 at 11:31 AM, Peter Kasting <pkas...@google.com> wrote:
>> On Thu, Sep 22, 2011 at 5:14 AM, Cary Clark <cary...@chromium.org> wrote:
>>> Support for images with embedded color profiles has been broken on Mac
>>> since Chrome 12 if not earlier.
>>
>> That's sad.  I guess this is fallout from Adam changing us over from the CG
>> image decoders to the Skia ones.  I had thought I'd made it clear that I
>> didn't want us to regress this when we did that, but I guess we regressed it
>> anyway :(
>
> I'm sorry if I broke color profiles.  That certainly wasn't my intent,
> and I thought I had tested it.  Do you have an example PNG or JPEG
> that shows us screwing up color profiles?

http://crbug.com/80844 has you saying "I'm not actively working on this bug.".

Note that so far only YCbCr profiles are broken, which seem
comparatively rare. Not breaking more color profiles was one of the
requirements for the skia switch – has that not happened?

Nico

Avi Drissman

unread,
Sep 22, 2011, 4:00:16 PM9/22/11
to tha...@chromium.org, aba...@chromium.org, pkas...@google.com, Cary Clark, epo...@google.com, Chromium-dev
On Thu, Sep 22, 2011 at 3:51 PM, Nico Weber <tha...@chromium.org> wrote:
Note that so far only YCbCr profiles are broken, which seem
comparatively rare. Not breaking more color profiles was one of the
requirements for the skia switch – has that not happened?

I have not found a single profile-tagged image that works correctly after that change.

http://www.color.org/version4html.xalter (which the MSIE page is taken from)
etc, etc.

We're seriously broken, and I'm rather surprised that people are shocked by this. I thought that everyone knew and just didn't care.

Avi

Adam Barth

unread,
Sep 22, 2011, 4:01:14 PM9/22/11
to Nico Weber, pkas...@google.com, Cary Clark, epo...@google.com, Chromium-dev
On Thu, Sep 22, 2011 at 12:51 PM, Nico Weber <tha...@chromium.org> wrote:
> On Thu, Sep 22, 2011 at 11:42 AM, Adam Barth <aba...@chromium.org> wrote:
>> On Thu, Sep 22, 2011 at 11:31 AM, Peter Kasting <pkas...@google.com> wrote:
>>> On Thu, Sep 22, 2011 at 5:14 AM, Cary Clark <cary...@chromium.org> wrote:
>>>> Support for images with embedded color profiles has been broken on Mac
>>>> since Chrome 12 if not earlier.
>>>
>>> That's sad.  I guess this is fallout from Adam changing us over from the CG
>>> image decoders to the Skia ones.  I had thought I'd made it clear that I
>>> didn't want us to regress this when we did that, but I guess we regressed it
>>> anyway :(
>>
>> I'm sorry if I broke color profiles.  That certainly wasn't my intent,
>> and I thought I had tested it.  Do you have an example PNG or JPEG
>> that shows us screwing up color profiles?
>
> http://crbug.com/80844 has you saying "I'm not actively working on this bug.".
>
> Note that so far only YCbCr profiles are broken, which seem
> comparatively rare.

Yeah, that bug is about YCbCr images, which as far as I can tell are
rare compared with RGB images. I thought Cary was saying I broke
color profiles for RGB images.

Adam


> Not breaking more color profiles was one of the
> requirements for the skia switch – has that not happened?
>

Avi Drissman

unread,
Sep 22, 2011, 4:01:50 PM9/22/11
to tha...@chromium.org, aba...@chromium.org, pkas...@google.com, Cary Clark, epo...@google.com, Chromium-dev
On Thu, Sep 22, 2011 at 4:00 PM, Avi Drissman <a...@chromium.org> wrote:

BTW, this is an RGB jpeg that fails to apply the embedded ICC profile. RGB is most certainly broken.

Avi

Jay Soffian

unread,
Sep 22, 2011, 8:58:37 PM9/22/11
to a...@google.com, aba...@chromium.org, pkas...@google.com, Cary Clark, epo...@google.com, Chromium-dev
On Thu, Sep 22, 2011 at 2:46 PM, Avi Drissman <a...@chromium.org> wrote:
> http://ie.microsoft.com/testdrive/graphics/colorprofiles/default.html
> That used to pass and now doesn't.

Also http://regex.info/blog/photo-tech/color-spaces-page2

j.

Brett Wilson

unread,
Sep 22, 2011, 11:25:12 PM9/22/11
to a...@google.com, tha...@chromium.org, aba...@chromium.org, pkas...@google.com, Cary Clark, epo...@google.com, Chromium-dev

I would presume that this change uses the entire Chromium image decode
code path rather than the built-in OSX ones, in which case it will
behave exactly like Chrome on other platforms, which means no color
profiles.

Brett

Nico Weber

unread,
Sep 22, 2011, 11:32:19 PM9/22/11
to Brett Wilson, a...@google.com, aba...@chromium.org, pkas...@google.com, Cary Clark, epo...@google.com, Chromium-dev
abarth added some support for this a while ago:
https://bugs.webkit.org/show_bug.cgi?id=48170

Elliot Poger

unread,
Sep 23, 2011, 3:55:49 PM9/23/11
to Chromium-dev
This change has landed as
http://src.chromium.org/viewvc/chrome?view=rev&revision=102532

It also required a webkit DEPS roll and update, which landed as
http://trac.webkit.org/changeset/95850

I will be watching the various buildbots until I go home in 2 hours...
if you have any concerns tonight / this weekend and don't see me
online, you can call me. +1-919-278-7437

Ryan Hamilton

unread,
Nov 22, 2011, 3:36:30 PM11/22/11
to bre...@chromium.org, a...@google.com, tha...@chromium.org, aba...@chromium.org, pkas...@google.com, Cary Clark, epo...@google.com, Chromium-dev
Once more from the right address...

As this thread suggests, Chrome on OS X no longer supports color profiles.  (At least not as far as I can tell).  Do we have a plan for resurrecting this support?

Cheers,

Ryan

Nico Weber

unread,
Nov 22, 2011, 3:52:04 PM11/22/11
to Ryan Hamilton, bre...@chromium.org, a...@google.com, aba...@chromium.org, pkas...@google.com, Cary Clark, epo...@google.com, Chromium-dev
Chrome/mac generally does support color profiles. It doesn't support
icc v2 YCrCb profiles and icc v4 profiles or something like that. I
think Cary has a plan to improve that long term.

Nico

Reply all
Reply to author
Forward
0 new messages