platform/upstream/libSkiaSharp.git
7 years ago[SVGDom] Add fill-rule support
Florin Malita [Thu, 1 Dec 2016 18:35:11 +0000 (13:35 -0500)]
[SVGDom] Add fill-rule support

There's a bit of friction with this attribute, because per spec it is
an inherited presentation attribute, but in Skia it is part of the
actual SkPath state.

So we must add some plumbing to SkSVGShape & friends to allow overriding
the fill type at render-time.

R=robertphillips@google.com,stephana@google.com

Change-Id: I9c926d653c6211beb3914bffac50d4349dbdd2c0
Reviewed-on: https://skia-review.googlesource.com/5415
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>

7 years agofStages.data() should always be defined, but UBSAN says NO
Mike Klein [Tue, 6 Dec 2016 15:36:52 +0000 (10:36 -0500)]
fStages.data() should always be defined, but UBSAN says NO

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I6aef3ec2bcb85d6ad4830c759a1234ef2e31f32d
Reviewed-on: https://skia-review.googlesource.com/5552
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoremove upper limit on number of pipeline stages
Mike Klein [Tue, 6 Dec 2016 14:17:55 +0000 (09:17 -0500)]
remove upper limit on number of pipeline stages

Bicubic is going to blow right past 48.  At this point the fixed preallocation strategy is starting to look naive... at 64 we'd allocate just over 1K for every pipeline (and every compiled pipeline).

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: Ib2944ead1217123aba2b6347fd9d5315217540c9
Reviewed-on: https://skia-review.googlesource.com/5551
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoDo not checkout skia from chromium.googlesource.com in RecreateSKPs bot
Ravi Mistry [Tue, 6 Dec 2016 13:14:12 +0000 (08:14 -0500)]
Do not checkout skia from chromium.googlesource.com in RecreateSKPs bot

It appears to be confusing "git cl upload".

BUG=skia:6033

Change-Id: I9813798dbfbbdb9eba6f4159f07e040ac865006c
Reviewed-on: https://skia-review.googlesource.com/5601
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>

7 years agoRemove redundant -GN bot suffixes.
Mike Klein [Mon, 5 Dec 2016 15:42:36 +0000 (10:42 -0500)]
Remove redundant -GN bot suffixes.

The GN in the name only matters for iOS bots now.  All the others are GN-only.

This revealed a couple redundant build bots: we had two each of Win x86_64 Debug and Release builders, one with -GN and one not.

I have intentionally not resorted gen_tasks.go to keep the diff looking somewhat sane.  I'd be happy to sort here or to follow up with a re-sort CL.

Change-Id: I2f8a136a1fbde416739966e27685b52b94b50cf6
Reviewed-on: https://skia-review.googlesource.com/5545
Reviewed-by: Eric Boren <borenet@google.com>
7 years agoUse FT_LOAD_BITMAP_METRICS_ONLY flag
Seigo Nonaka [Sun, 4 Dec 2016 17:41:53 +0000 (02:41 +0900)]
Use FT_LOAD_BITMAP_METRICS_ONLY flag

FT_LOAD_BITMAP_METRICS_ONLY flag was introduced for retrieving font
metrics without decoding or allocating bitmaps.

BUG=skia:

Change-Id: I901531501111f24d8b670305379e04c0bc688e6f
Reviewed-on: https://skia-review.googlesource.com/5580
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>

7 years agoAdd destination color space to shader ContextRec
Brian Osman [Mon, 5 Dec 2016 20:26:50 +0000 (15:26 -0500)]
Add destination color space to shader ContextRec

BUG=skia:

Change-Id: Ib1920fffd5735ad54a5b785bbc2676ea240bdbfa
Reviewed-on: https://skia-review.googlesource.com/5611
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Brian Osman <brianosman@google.com>

7 years agoGIF: Internal cleanup - remove color map parameter
Leon Scroggins III [Mon, 5 Dec 2016 19:56:30 +0000 (14:56 -0500)]
GIF: Internal cleanup - remove color map parameter

SkGIFFrameContext::decode() and SkGIFLZWContext::prepareToDecode() do
not need (or use) the global color map, so stop passing it as a
parameter. The parameter was used prior to
https://skia-review.googlesource.com/c/4379/ (different issue!), but we
overlooked removing it then.

Change-Id: I0f477e9db11f7650938d6b868baef69e3b37d86b
Reviewed-on: https://skia-review.googlesource.com/5609
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
7 years agoMake flag values in GrResourceProvider and GrTextureProvider consistent
Brian Salomon [Mon, 5 Dec 2016 18:14:44 +0000 (13:14 -0500)]
Make flag values in GrResourceProvider and GrTextureProvider consistent

BUG=chromium:665673

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5602

Change-Id: I41522aa24cd4b4a7e085132dd9bcbfdd66bd9617
Reviewed-on: https://skia-review.googlesource.com/5602
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoAdd a context stack to Reporter, for better error messages
Brian Osman [Mon, 5 Dec 2016 16:35:07 +0000 (11:35 -0500)]
Add a context stack to Reporter, for better error messages

Currently, just inject the Ganesh context type when running unit tests.
Obviously, we can use this to supply other contextual information around
tests that do many variations of configs, formats, etc...

BUG=skia:

Change-Id: Iab96632a92ec632e4d132bbcc17a91a8dd251e78
Reviewed-on: https://skia-review.googlesource.com/5565
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>

7 years agoColor-correct Gray JPEG image decoding via ICC profiles.
raftias [Fri, 2 Dec 2016 16:56:59 +0000 (11:56 -0500)]
Color-correct Gray JPEG image decoding via ICC profiles.

SkColorSpace::MakeICC now parses Gray ICC profiles and
SkColorSpaceXform_A2B can now render color spaces from Gray ICC
profiles. This is not enabled for SkPngCodec as of right now as we don't
have any Gray PNG test images currently.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5214
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: Iea7136d1c163cd17cf0818af57f93efdbcb577e7
Reviewed-on: https://skia-review.googlesource.com/5214
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Robert Aftias <raftias@google.com>

7 years agoIn DM, do quick test to reject context by type first
Brian Osman [Mon, 5 Dec 2016 15:12:17 +0000 (10:12 -0500)]
In DM, do quick test to reject context by type first

BUG=skia:

Change-Id: Id66a68e47f671cafd7c6128787fbd149faf16c7a
Reviewed-on: https://skia-review.googlesource.com/5576
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>

7 years agoMake ANGLE SampleApp work again
Brian Osman [Mon, 5 Dec 2016 14:46:02 +0000 (09:46 -0500)]
Make ANGLE SampleApp work again

The code in views and samplecode wasn't being compiled in. Expand the
scope of the SK_ANGLE define to fix that. Add some missing deps too.

BUG=skia:

Change-Id: Id7b584457a21f171efc2339fb969c550379295e5
Reviewed-on: https://skia-review.googlesource.com/5575
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoAdd no-op draw overrides to SkNoDrawCanvas
Florin Malita [Sun, 4 Dec 2016 16:44:52 +0000 (11:44 -0500)]
Add no-op draw overrides to SkNoDrawCanvas

SkNoDrawCanvas is not backed by pixels, but for draw ops not intercepted
by clients we abort rasterization failry late (SkNullBlitter).

BUG=chromium:668925
R=reed@google.com

Change-Id: I4cd80dbbc262936d33410275051ea0b9c04fbc6c
Reviewed-on: https://skia-review.googlesource.com/5543
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoManual byte -> float conversion.
Mike Klein [Fri, 2 Dec 2016 20:21:03 +0000 (15:21 -0500)]
Manual byte -> float conversion.

This is a follow-up to reviews.skia.org/5540, which did float -> byte.
We use the same trick here exploiting 32768.0f / 0x47000000.

The benefit here is smaller than the other CL, but still measurable.

The exchange here is:
  before: int->float, multiply
  after:  OR, FMA
The cost of an FMA is the same as a multiply, so we're basically just replacing int->float conversion with a bitwise OR.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: Ieac2247664afa3ff415aec2b48c21505905bee23
Reviewed-on: https://skia-review.googlesource.com/5542
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRevert "Remove use of makeDeferredRenderTargetContextWithFallback"
Robert Phillips [Mon, 5 Dec 2016 13:18:47 +0000 (13:18 +0000)]
Revert "Remove use of makeDeferredRenderTargetContextWithFallback"

This reverts commit 155b29224d64b5c12bf7fc789edb5c257b6281c8.

Reason for revert:

https://skia-review.googlesource.com/c/5541/ (Second part of piecemeal revert) seems to have zeroed in on the change that caused the perf regression. Let's see if the changes reverted in this CL are acceptable.

Change-Id: I477fe23d84a9c14f87a431ec2b495f617ff410be
Reviewed-on: https://skia-review.googlesource.com/5573
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
7 years agoRoll recipe DEPS
Eric Boren [Mon, 5 Dec 2016 12:22:51 +0000 (07:22 -0500)]
Roll recipe DEPS

BUG=skia:

Change-Id: I9ef5de7c94377ef54a10e14efa59f7e142543da6
Reviewed-on: https://skia-review.googlesource.com/5571
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>

7 years agoFix max/min error
Matt Sarett [Sun, 4 Dec 2016 21:08:14 +0000 (16:08 -0500)]
Fix max/min error

BUG=skia:

Change-Id: I6a690e843476e31077a90a8312f6335d8ef230f4
Reviewed-on: https://skia-review.googlesource.com/5544
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agoDo not create an SkRawCodec with zero dimensions
Leon Scroggins III [Fri, 2 Dec 2016 21:47:53 +0000 (16:47 -0500)]
Do not create an SkRawCodec with zero dimensions

Add a test

BUG=skia:3534
BUG=b/33300701

Change-Id: Ifb3a824a36998c5e626c4ad58466845f49d18ebf
Reviewed-on: https://skia-review.googlesource.com/5568
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
7 years agoSecond part of piecemeal revert
Robert Phillips [Fri, 2 Dec 2016 19:56:45 +0000 (14:56 -0500)]
Second part of piecemeal revert

This is a partial revert of https://codereview.chromium.org/2514543002 (Defer more renderTargetContexts in the GPU image filter paths - take 2)

I have been unable to reproduce the performance regression in crbug.com/668179 locally so intend to revert the above CL piecemeal.

BUG=668179

Change-Id: Iee9d0164f85ae33ff8dfa9b3eb01c07fd825f017
Reviewed-on: https://skia-review.googlesource.com/5541
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>

7 years agoTricky float -> byte conversion in store_8888.
Mike Klein [Fri, 2 Dec 2016 19:22:57 +0000 (14:22 -0500)]
Tricky float -> byte conversion in store_8888.

In IEEE, for each byte BB, the float 0x470000BB equals 32768.0f + BB*(1/256.0f).

So to turn a [0,1] float into a byte, we can
  - multiply by (255/256.0f) to get into [0,255/256.0f] range,
  - add 32768.0f to get into [32768.0f, 32768.0f + 255/256.0f] range,
  - look at the low byte.
Those first two of course are an FMA.

Using this trick here makes store_8888 measurably faster.  Instead of a FMA then float->int trunc, we do an FMA then a bitwise AND.  Overall the math goes from 4 FMA + 4 trunc + 3 shift to 4 FMA + 3 AND + 3 shift (we can skip the shift for red and the AND for alpha).  As you might guess, AND is cheaper than trunc, so this is a net win.

I should be able to follow up with the same trick in reverse in from_8888().

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I42c8f4a6ea0b6c22160517cf5f9c048f01c9a330
Reviewed-on: https://skia-review.googlesource.com/5540
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRefine constant sRGB and Adobe RGB to D50 matrices
Matt Sarett [Thu, 1 Dec 2016 19:40:15 +0000 (14:40 -0500)]
Refine constant sRGB and Adobe RGB to D50 matrices

The new values are calculated starting with the "true" values,
adapted to D50 using the Bradford transform.

I don't remember where the old values came from, they've been
around forever.  It's possible that I just typed in the values
that came out of ICC profiles (these would have been imperfect,
given that there's a fixed-point -> float conversion happening
there).

BUG=skia:

Change-Id: I8e870266bc8ab5372c3ccf6a5ee6691b2915af43
Reviewed-on: https://skia-review.googlesource.com/5450
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
7 years agoRebase non-drawing SkCanvas subclasses to SkNoDrawCanvas
Florin Malita [Fri, 2 Dec 2016 17:05:41 +0000 (12:05 -0500)]
Rebase non-drawing SkCanvas subclasses to SkNoDrawCanvas

R=reed@google.com,mtklein@google.com

Change-Id: I7df84587821db561e262a915afa23108a4a78834
Reviewed-on: https://skia-review.googlesource.com/5508
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>

7 years agoFix tasks.json
Eric Boren [Fri, 2 Dec 2016 18:05:11 +0000 (13:05 -0500)]
Fix tasks.json

Two of my previous CLs stepped on each other.

BUG=skia:

Change-Id: I53d49f283e466ad7fd6c38a6d4243c084dd324c7
Reviewed-on: https://skia-review.googlesource.com/5519
Reviewed-by: Eric Boren <borenet@google.com>
7 years agoFix textblobrandomfont GM in F16 configs
Brian Osman [Fri, 2 Dec 2016 17:07:17 +0000 (12:07 -0500)]
Fix textblobrandomfont GM in F16 configs

We were trying to mix the canvas' color space (linear gamma) with N32
color type, which isn't allowed. Propagate the original color type, too.

BUG=skia:

Change-Id: I606b25e690486abe042d6a4b6dda606ac85b546b
Reviewed-on: https://skia-review.googlesource.com/5509
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years ago[nobuildbot] Replace presubmit bot with swarmbucket version
Eric Boren [Fri, 2 Dec 2016 17:38:06 +0000 (12:38 -0500)]
[nobuildbot] Replace presubmit bot with swarmbucket version

BUG=skia:

Change-Id: I40d46e3a8a5c6c6fa77075c94d6bd290f764a41c
Reviewed-on: https://skia-review.googlesource.com/5512
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>

7 years agoMake all tasks specify an OS version
Eric Boren [Fri, 2 Dec 2016 17:09:10 +0000 (12:09 -0500)]
Make all tasks specify an OS version

Rename Win->Win10 where appropriate

BUG=skia:

Change-Id: I8692340cebf646e2cb0cb825e808b5ea1b695a8f
Reviewed-on: https://skia-review.googlesource.com/5356
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
7 years ago[nobuildbot] Housekeeper-PerCommit
Eric Boren [Fri, 2 Dec 2016 16:01:33 +0000 (11:01 -0500)]
[nobuildbot] Housekeeper-PerCommit

BUG=skia:

Change-Id: I9a6a8970bd70dc52334fc44ed29ea942c29132fc
Reviewed-on: https://skia-review.googlesource.com/5507
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>

7 years agofiddle: Don't run F16 by default, it doesn't work with OSMesa.
Joe Gregorio [Fri, 2 Dec 2016 15:48:53 +0000 (10:48 -0500)]
fiddle: Don't run F16 by default, it doesn't work with OSMesa.

BUG=skia:

Change-Id: I68706e7f7b3641d46de4e9765343fa13537f4fcd
Reviewed-on: https://skia-review.googlesource.com/5506
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>

7 years agoRemove SK_ANALYTIC_AA_GUARD flag
Yuqian Li [Fri, 2 Dec 2016 15:14:36 +0000 (10:14 -0500)]
Remove SK_ANALYTIC_AA_GUARD flag

BUG=skia:

Change-Id: I4e10ba7afc76ed41c6c41275f9b6a5dde3a2a4be
Reviewed-on: https://skia-review.googlesource.com/5502
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Yuqian Li <liyuqian@google.com>

7 years agoSwitch Intel Broadwell (Iris 6100) to ANGLE.
Ben Wagner [Thu, 1 Dec 2016 22:40:49 +0000 (17:40 -0500)]
Switch Intel Broadwell (Iris 6100) to ANGLE.

BUG=skia:5933

Change-Id: I440414d3d3db72a55be493aeb910bda29cc87841
Reviewed-on: https://skia-review.googlesource.com/5473
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>

7 years agoFix Chrome Linux - temporarily turn off xform pipeline
Matt Sarett [Fri, 2 Dec 2016 15:01:48 +0000 (10:01 -0500)]
Fix Chrome Linux - temporarily turn off xform pipeline

BUG:670620

Change-Id: Ic481d09a7112ef05f53fa1f94a7c155870c43408
Reviewed-on: https://skia-review.googlesource.com/5501
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
7 years agoBe explicit about the vector<FrameInfo> type
Leon Scroggins III [Fri, 2 Dec 2016 14:23:03 +0000 (09:23 -0500)]
Be explicit about the vector<FrameInfo> type

This fixes a compile error in Chromium.

BUG=skia:6026

Change-Id: Idd5ad22cb52a084836de6e1427f1f047d1feab08
Reviewed-on: https://skia-review.googlesource.com/5500
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>

7 years agoTwo (related) changes here:
brianosman [Fri, 2 Dec 2016 14:43:32 +0000 (06:43 -0800)]
Two (related) changes here:

1) Our older iOS devices failed our sRGB tests, due to precision issues
with alpha. At this point, we only test on iPadMini 4, and that appears
not to have any problems.

2) iOS devices still don't have the sRGB texture decode extension. But,
some clients have no interest in mixing legacy/color-correct rendering,
and would like to use sRGB on these devices. This GrContextOptions flag
enables sRGB support in those cases.

Adjust the test code to produce sRGB capable contexts on these devices,
but only for configs that have a color space. (See comment).

BUG=skia:4148

Committed: https://skia.googlesource.com/skia/+/9db12d2341f3f8722c8b90b11dd4cce138a8a64e
Committed: https://skia.googlesource.com/skia/+/1aeb78c5d978b35b256525b711edd942bce01444
Review-Url: https://codereview.chromium.org/2539993002

7 years agoRetire SkNoSaveLayerCanvas
Florin Malita [Thu, 1 Dec 2016 20:46:26 +0000 (15:46 -0500)]
Retire SkNoSaveLayerCanvas

No clients, superseded by SkNoDrawCanvas.

R=reed@google.com

Change-Id: I93352c6cfb24ec133ed8433c3b31a5fa5ab1ace8
Reviewed-on: https://skia-review.googlesource.com/5460
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoClamp colors after gamut xform in Ganesh
Brian Osman [Thu, 1 Dec 2016 22:04:43 +0000 (17:04 -0500)]
Clamp colors after gamut xform in Ganesh

Fixes many blatant errors with glnarrow config

BUG=skia:

Change-Id: I729cda350ebce126bdac4eb41c91f30294e1c61e
Reviewed-on: https://skia-review.googlesource.com/5469
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Brian Osman <brianosman@google.com>

7 years agoArchive or update unsupported Android scripts and third-party dependencies.
Derek Sollenberger [Thu, 1 Dec 2016 19:37:41 +0000 (14:37 -0500)]
Archive or update unsupported Android scripts and third-party dependencies.

  - nothing uses ashmem;
  - cpufeatures and native_app_glue are now pulled from the NDK;
  - no bots use the scripts in platform_tools/android/bin;
  - update scripts to work with GN instead of GYP.

Change-Id: I14f47eeadb3047505e232dd10385f58ef12c73f4
Reviewed-on: https://skia-review.googlesource.com/5422
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Derek Sollenberger <djsollen@google.com>

7 years agoSkNf_round, use it in store_565 and store_tables.
Mike Klein [Fri, 2 Dec 2016 13:29:10 +0000 (08:29 -0500)]
SkNf_round, use it in store_565 and store_tables.

This gives us a place to bottleneck this sort of conversion.  Every time I try to use the rounding float -> int instructions, they're just a little slower than working the 1/2 into the scale with FMA.  Weird.

Change-Id: I7718112b234b4b38ba6af8fef59a47642021839a
Reviewed-on: https://skia-review.googlesource.com/5483
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Matt Sarett <msarett@google.com>
7 years agouse fma in store_8888
Mike Klein [Thu, 1 Dec 2016 23:22:26 +0000 (18:22 -0500)]
use fma in store_8888

I think we just happened not to here.  This improves Adobe -> sRGB pipeline conversion by about 3-4%.

While at it, unify all the fma() lambdas into SkNf_fma().  I'd have called it fma(), but IIRC there was some sort of name conflict there with type-generic fma() functions from the C math.h or something silly like that.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: Id176671fec27c984efa4703c5be2fb63b7f0b11f
Reviewed-on: https://skia-review.googlesource.com/5474
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoremove (empty) SkXfermode.h
Mike Reed [Fri, 2 Dec 2016 00:54:02 +0000 (19:54 -0500)]
remove (empty) SkXfermode.h

BUG=skia:

Change-Id: Ic5ceb829a80252b35d4a953dc32417db9ddc8ec8
Reviewed-on: https://skia-review.googlesource.com/5481
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoRename GrVertexBatch->GrMeshDrawOp
Brian Salomon [Thu, 1 Dec 2016 21:40:24 +0000 (16:40 -0500)]
Rename GrVertexBatch->GrMeshDrawOp

Change-Id: I3ebe5a471477ce1b71c150b0bde4982d113fd8a7
Reviewed-on: https://skia-review.googlesource.com/5468
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoSkColorSpaceXform bug fixes attempt 2
Matt Sarett [Thu, 1 Dec 2016 22:02:07 +0000 (17:02 -0500)]
SkColorSpaceXform bug fixes attempt 2

(1) Clamping

If we're going to clamp (8888 outputs), we need to clamp properly
to alpha (not 1) when we premultiply.  This fix is made in
SkColorSpaceXform_XYZ.

An alternative fix would move all clamping out of the store
functions, to before the gamma encoding.  This generally makes sense,
but the "to 2.2 conversion" may introduce NaNs and always needs a
clamp.  So another fix is to just have an extra clamp in the store 2.2
function.  Since we have two pipelines, let's try this one in
SkColorSpaceXform_Pipeline :).

(2) Correctly handle the memcpy() case.

This is not changed from a previous (reverted) CL.

Looks like this only ever worked for RGBA inputs,
never got updated when we added BGRA inputs.

This probably flew under the radar because the
clients are smart enough to avoid performing a
color xform altogether when the color spaces
match.

BUG=skia:

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I0b59239d2488ce9fdbe11efbd96567e420bb9813
Reviewed-on: https://skia-review.googlesource.com/5464
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoFix for Fuzzer when AtoBType profiles are empty.
raftias [Thu, 1 Dec 2016 21:40:51 +0000 (16:40 -0500)]
Fix for Fuzzer when AtoBType profiles are empty.

When all A/B/M-curves, the matrix and the CLUT were not there it would
crash. There is now a check to avoid that. Past this point it should not
be an empty, as SkColorSpaceXform did not make such an assumption.

BUG=skia:6023

Change-Id: I099bcef7efac100d438a30bf59d9c170119b8545
Reviewed-on: https://skia-review.googlesource.com/5480
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Robert Aftias <raftias@google.com>

7 years agoSkip clamps in color xform pipelines if possible.
Mike Klein [Thu, 1 Dec 2016 21:39:21 +0000 (16:39 -0500)]
Skip clamps in color xform pipelines if possible.

This does skip clamp_0 when converting sRGB to your default colorspace.

Each clamp is ~2% of the pipeline runtime, so it's small, but might as well.

Change-Id: I2bb0dadf84759c31cc825f9b6b17680e7aa7d9f3
Reviewed-on: https://skia-review.googlesource.com/5467
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRevert of Enable sRGB on iOS, make sRGB decode support optional (patchset #12 id...
brianosman [Thu, 1 Dec 2016 21:59:31 +0000 (13:59 -0800)]
Revert of Enable sRGB on iOS, make sRGB decode support optional (patchset #12 id:220001 of https://codereview.chromium.org/2539993002/ )

Reason for revert:
Command Buffer, too...

Original issue's description:
> Two (related) changes here:
>
> 1) Our older iOS devices failed our sRGB tests, due to precision issues
> with alpha. At this point, we only test on iPadMini 4, and that appears
> not to have any problems.
>
> 2) iOS devices still don't have the sRGB texture decode extension. But,
> some clients have no interest in mixing legacy/color-correct rendering,
> and would like to use sRGB on these devices. This GrContextOptions flag
> enables sRGB support in those cases.
>
> Adjust the test code to produce sRGB capable contexts on these devices,
> but only for configs that have a color space. (See comment).
>
> BUG=skia:4148
>
> Committed: https://skia.googlesource.com/skia/+/9db12d2341f3f8722c8b90b11dd4cce138a8a64e
> Committed: https://skia.googlesource.com/skia/+/1aeb78c5d978b35b256525b711edd942bce01444

TBR=bsalomon@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4148

Review-Url: https://codereview.chromium.org/2546783005

7 years agoMake SkMatrix44:dump() print out a recognizable matrix.
Mike Klein [Thu, 1 Dec 2016 21:11:07 +0000 (16:11 -0500)]
Make SkMatrix44:dump() print out a recognizable matrix.

Change-Id: I7b64d8aee335eef39924ab65f46f196892ea2a39
Reviewed-on: https://skia-review.googlesource.com/5465
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoOptimized gamma table inversion.
raftias [Thu, 1 Dec 2016 20:31:29 +0000 (15:31 -0500)]
Optimized gamma table inversion.

Brought calculation into a central place so the loop did not have to
recalculate everything before the previous entry to find the inverse
index. O(n) vs O(n^2). Assumes an increasing (or at least
non-decreasing) table gamma just as the previous code did.

BUG=skia:

Change-Id: I7ea200c06511b3d74745fe4a6e3dde706bbee02f
Reviewed-on: https://skia-review.googlesource.com/5402
Commit-Queue: Robert Aftias <raftias@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
7 years agoDetect when we can skip clamps on gamut transforms.
Mike Klein [Thu, 1 Dec 2016 20:19:29 +0000 (15:19 -0500)]
Detect when we can skip clamps on gamut transforms.

This is the same logic from the matrix color filter, scaled down from 4x5 to 3x4.
I'm seeing cases in GMs where we can skip clamps in both directions, but never both together.

Change-Id: I515c5e207d35ed23f1e267d55460fe4d41e1a8f1
Reviewed-on: https://skia-review.googlesource.com/5456
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoTwo (related) changes here:
brianosman [Thu, 1 Dec 2016 21:18:16 +0000 (13:18 -0800)]
Two (related) changes here:

1) Our older iOS devices failed our sRGB tests, due to precision issues
with alpha. At this point, we only test on iPadMini 4, and that appears
not to have any problems.

2) iOS devices still don't have the sRGB texture decode extension. But,
some clients have no interest in mixing legacy/color-correct rendering,
and would like to use sRGB on these devices. This GrContextOptions flag
enables sRGB support in those cases.

Adjust the test code to produce sRGB capable contexts on these devices,
but only for configs that have a color space. (See comment).

BUG=skia:4148

Committed: https://skia.googlesource.com/skia/+/9db12d2341f3f8722c8b90b11dd4cce138a8a64e
Review-Url: https://codereview.chromium.org/2539993002

7 years agoReland "Add RasterPipeline implementation for SkColorSpaceXform"
Matt Sarett [Thu, 1 Dec 2016 19:46:12 +0000 (14:46 -0500)]
Reland "Add RasterPipeline implementation for SkColorSpaceXform"

This is initially turned on for Linux debug builds,
which allows us to start testing.

Chrome for Android is a really good candidate for
this (will appreciate the code size savings), but
I'd first like to run some tests to understand the
performance/size tradeoffs a little better.

BUG:660416

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: Ifc80e663767df6bb767abb8b12b1ec5cec644ec5
Reviewed-on: https://skia-review.googlesource.com/5452
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agodocs: Update Perf docs.
Joe Gregorio [Thu, 1 Dec 2016 20:37:06 +0000 (15:37 -0500)]
docs: Update Perf docs.

BUG=skia:

NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=5458

Change-Id: If8a452711076bef19566fa64a5a52ca9b3e7b83c
Reviewed-on: https://skia-review.googlesource.com/5458
Reviewed-by: Heather Miller <hcm@google.com>
Commit-Queue: Heather Miller <hcm@google.com>

7 years agoUpdate skimage version, test CMYK images
Matt Sarett [Thu, 1 Dec 2016 19:24:01 +0000 (14:24 -0500)]
Update skimage version, test CMYK images

BUG=skia:

Change-Id: Id0c9ba3c722304813e3605ef61b87fa00249eaf9
Reviewed-on: https://skia-review.googlesource.com/5449
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Robert Aftias <raftias@google.com>
7 years agoRevert "SkColorSpaceXform bug fixes"
Matt Sarett [Thu, 1 Dec 2016 20:28:35 +0000 (20:28 +0000)]
Revert "SkColorSpaceXform bug fixes"

This reverts commit d0fdc0f234b8b55cf418f4db9466d3883deadfb1.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> SkColorSpaceXform bug fixes
>
> (1) Clamp properly!
>
> Finally came to this realization: clamping in the
> store functions (after gamma encoding) is ridiculous.
> It is impossible to know how to clamp premul values
> to alpha when they are already gamma encoded.
>
> I've moved the clamp out of the store function.
> Whew, this actually makes the code look simpler.
>
> And I expect this to fix some buggy images on Gold!
>
> (2) Correctly handle the memcpy() case.
>
> Looks like this only ever worked for RGBA inputs,
> never got updated when we added BGRA inputs.
>
> This probably flew under the radar because the
> clients are smart enough to avoid performing a
> color xform altogether when the color spaces
> match.
>
> BUG=skia:
>
> Change-Id: I4870048105efcbecc70b4bd5f77c39537006363e
> Reviewed-on: https://skia-review.googlesource.com/5389
> Commit-Queue: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Mike Klein <mtklein@chromium.org>
>

TBR=mtklein@chromium.org,mtklein@google.com,msarett@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Id9e4cfdaa7b30a3841e83c4cde16aa7d33acc0f2
Reviewed-on: https://skia-review.googlesource.com/5457
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
7 years agoAvoid creating std::function in run_pipeline().
Mike Klein [Thu, 1 Dec 2016 19:05:38 +0000 (14:05 -0500)]
Avoid creating std::function in run_pipeline().

This avoids a malloc/free per SkRasterPipeline::run(), with no downside.

  $ out/nanobench --benchType skcolorcodec --colorImages images/colorspace/201293.jpg --skps noskps --xform_only --srgb --ms 10000

  target:  273µs
  current: 395µs
  this CL: 375µs

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: Icd62f505f555ebf4ca66ee77a476f59cab68433d
Reviewed-on: https://skia-review.googlesource.com/5447
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Matt Sarett <msarett@google.com>
7 years agoAdded CMYK support for ICC profiles.
raftias [Thu, 1 Dec 2016 18:44:07 +0000 (13:44 -0500)]
Added CMYK support for ICC profiles.

Changed ICC parsing/SkGammas/SkColorLookUpTable to handle non-3-channel
inputs. Parsed CMYK A2B ICC profiles. Integrated this with SkJpegCodec
(the only file that supports CMYK) and SkColorSpaceXform_A2B to allow
parsing and color xforming of ICC CMYK images.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I11e3d17180244281be3eb43fd608609925a7f71e
Reviewed-on: https://skia-review.googlesource.com/5444
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agoRevert "Add RasterPipeline implementation for SkColorSpaceXform"
Brian Osman [Thu, 1 Dec 2016 19:06:23 +0000 (19:06 +0000)]
Revert "Add RasterPipeline implementation for SkColorSpaceXform"

This reverts commit dd19ac7d10c7c00dd6e9b1f4c4c6aae729c7e6d4.

Reason for revert: ASAN

Change-Id: I59aacc092398c4db40696a8343d657a5ad7c0f66
Reviewed-on: https://skia-review.googlesource.com/5448
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
7 years agoRemove use of makeDeferredRenderTargetContextWithFallback
Robert Phillips [Thu, 1 Dec 2016 17:57:20 +0000 (12:57 -0500)]
Remove use of makeDeferredRenderTargetContextWithFallback

This is a partial revert of https://codereview.chromium.org/2514543002 (Defer more renderTargetContexts in the GPU image filter paths - take 2)

I have been unable to reproduce the performance regression in crbug.com/668179 locally so intend to revert the above CL piecemeal.

BUG=668179

Change-Id: Idf3d66d71c452f5718d7b1d8d945ca7ff46b75d8
Reviewed-on: https://skia-review.googlesource.com/5441
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoRevert of Enable sRGB on iOS, make sRGB decode support optional (patchset #11 id...
brianosman [Thu, 1 Dec 2016 18:42:03 +0000 (10:42 -0800)]
Revert of Enable sRGB on iOS, make sRGB decode support optional (patchset #11 id:200001 of https://codereview.chromium.org/2539993002/ )

Reason for revert:
ANGLE tests are failing

Original issue's description:
> Two (related) changes here:
>
> 1) Our older iOS devices failed our sRGB tests, due to precision issues
> with alpha. At this point, we only test on iPadMini 4, and that appears
> not to have any problems.
>
> 2) iOS devices still don't have the sRGB texture decode extension. But,
> some clients have no interest in mixing legacy/color-correct rendering,
> and would like to use sRGB on these devices. This GrContextOptions flag
> enables sRGB support in those cases.
>
> Adjust the test code to produce sRGB capable contexts on these devices,
> but only for configs that have a color space. (See comment).
>
> BUG=skia:4148
>
> Committed: https://skia.googlesource.com/skia/+/9db12d2341f3f8722c8b90b11dd4cce138a8a64e

TBR=bsalomon@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4148

Review-Url: https://codereview.chromium.org/2547603002

7 years agoAdd RasterPipeline implementation for SkColorSpaceXform
Matt Sarett [Thu, 1 Dec 2016 17:51:14 +0000 (12:51 -0500)]
Add RasterPipeline implementation for SkColorSpaceXform

This is initially turned on for Linux debug builds,
which allows us to start testing.

Chrome for Android is a really good candidate for
this (will appreciate the code size savings), but
I'd first like to run some tests to understand the
performance/size tradeoffs a little better.

BUG:660416

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I0fb2512216dfc0bda2e5388f9865318eec22291e
Reviewed-on: https://skia-review.googlesource.com/5348
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoAdd animating blur image filter GM/slide/bench
Robert Phillips [Thu, 1 Dec 2016 17:42:43 +0000 (12:42 -0500)]
Add animating blur image filter GM/slide/bench

Probably still worth having but I haven't been able to reproduce the perf regression in
crbug.com/668179 with it yet.

Change-Id: If3b0f2998ff38a17a173895ed9cea6950a81f6b7
Reviewed-on: https://skia-review.googlesource.com/5382
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>

7 years agoSkNoDrawCanvas - a public non-drawing canvas base class
Florin Malita [Thu, 1 Dec 2016 17:47:59 +0000 (12:47 -0500)]
SkNoDrawCanvas - a public non-drawing canvas base class

TODO:

  - convert SkDeferredCanvas, SkLiteRecorder, etc. to the new base
  - remove unused SkNoSaveLayerCanvas

BUG=chromium:668925
R=reed@google.com,mtklein@google.com

Change-Id: Ie9af577477a6b9eaa5ef55523287ad1635dca116
Reviewed-on: https://skia-review.googlesource.com/5349
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>

7 years agoAdd srgb and f16 modes to fiddle
Matt Sarett [Tue, 29 Nov 2016 22:14:58 +0000 (17:14 -0500)]
Add srgb and f16 modes to fiddle

BUG=skia:5945

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4546

Change-Id: I29b87a3b2eb20b8d28f8fb970b5192807bebdc48
Reviewed-on: https://skia-review.googlesource.com/4546
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agothird_party/ktx: put WriteBitmapToKTX back
Hal Canary [Thu, 1 Dec 2016 17:40:02 +0000 (12:40 -0500)]
third_party/ktx: put WriteBitmapToKTX back

BUG=skia:

Change-Id: I876e802db370a7812cd53e42cb4927702e6c1fb6
Reviewed-on: https://skia-review.googlesource.com/5418
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
7 years agoRevert "Revert "Revert "remove (empty) SkXfermode.h"""
Mike Reed [Thu, 1 Dec 2016 17:32:30 +0000 (17:32 +0000)]
Revert "Revert "Revert "remove (empty) SkXfermode.h"""

This reverts commit 1c038af278a69186e988dd9348b4089d78759492.

Reason for revert: <INSERT REASONING HERE>

More breaks in g3 (e.g. blink_headless)

Original change's description:
> Revert "Revert "remove (empty) SkXfermode.h""
>
> This reverts commit c5d0147717e50acba106b76c6c345192274ddc06.
>
> g3 is updated to allow this to land
>
> BUG=skia:
>
> Change-Id: I5f4b06c2dc77dfa66d9b32348375151177511a65
> Reviewed-on: https://skia-review.googlesource.com/5406
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Mike Reed <reed@google.com>
>

TBR=reed@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I77f69512f616120382c31d90243f7df13985d76c
Reviewed-on: https://skia-review.googlesource.com/5419
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoTwo (related) changes here:
brianosman [Thu, 1 Dec 2016 17:02:03 +0000 (09:02 -0800)]
Two (related) changes here:

1) Our older iOS devices failed our sRGB tests, due to precision issues
with alpha. At this point, we only test on iPadMini 4, and that appears
not to have any problems.

2) iOS devices still don't have the sRGB texture decode extension. But,
some clients have no interest in mixing legacy/color-correct rendering,
and would like to use sRGB on these devices. This GrContextOptions flag
enables sRGB support in those cases.

Adjust the test code to produce sRGB capable contexts on these devices,
but only for configs that have a color space. (See comment).

BUG=skia:4148

Review-Url: https://codereview.chromium.org/2539993002

7 years agoRename GrDrawBatch->GrDrawOp
Brian Salomon [Thu, 1 Dec 2016 15:59:09 +0000 (10:59 -0500)]
Rename GrDrawBatch->GrDrawOp

Change-Id: I18f520924b8a2548566fd61dbea4e3e12bd253dd
Reviewed-on: https://skia-review.googlesource.com/5411
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
7 years agoRevert "Added CMYK support for ICC profiles."
Mike Klein [Thu, 1 Dec 2016 16:38:16 +0000 (16:38 +0000)]
Revert "Added CMYK support for ICC profiles."

This reverts commit 51c3fcd376c5c9972d9476b5532f6164375a38d1.

Reason for revert: ASAN, MSAN both take issue with parse_and_load_gamma()

Original change's description:
> Added CMYK support for ICC profiles.
>
> Changed ICC parsing/SkGammas/SkColorLookUpTable to handle non-3-channel
> inputs. Parsed CMYK A2B ICC profiles. Integrated this with SkJpegCodec
> (the only file that supports CMYK) and SkColorSpaceXform_A2B to allow
> parsing and color xforming of ICC CMYK images.
>
> BUG=skia:
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5197
> CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
>
>
> Change-Id: Id6619f63f04071f79cd2d84321857dfa269ad3aa
> Reviewed-on: https://skia-review.googlesource.com/5197
> Commit-Queue: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Matt Sarett <msarett@google.com>
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Leon Scroggins <scroggo@google.com>
>

TBR=mtklein@chromium.org,mtklein@google.com,msarett@google.com,scroggo@google.com,brianosman@google.com,raftias@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Ib43fef00bc233c0b4fa47ed29040d69601def267
Reviewed-on: https://skia-review.googlesource.com/5423
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoAdded CMYK support for ICC profiles.
raftias [Wed, 30 Nov 2016 16:19:22 +0000 (11:19 -0500)]
Added CMYK support for ICC profiles.

Changed ICC parsing/SkGammas/SkColorLookUpTable to handle non-3-channel
inputs. Parsed CMYK A2B ICC profiles. Integrated this with SkJpegCodec
(the only file that supports CMYK) and SkColorSpaceXform_A2B to allow
parsing and color xforming of ICC CMYK images.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5197
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: Id6619f63f04071f79cd2d84321857dfa269ad3aa
Reviewed-on: https://skia-review.googlesource.com/5197
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Leon Scroggins <scroggo@google.com>
7 years agomove all memset() logic into blitter
Mike Klein [Thu, 1 Dec 2016 00:39:43 +0000 (19:39 -0500)]
move all memset() logic into blitter

It's cute in compile_pipeline(), but as before, clearer and simpler in the blitter.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: Ib83ff097e4e057e72aed785797e6ac0029ca5dbf
Reviewed-on: https://skia-review.googlesource.com/5399
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRename GrBatch to GrOp
Brian Salomon [Thu, 1 Dec 2016 14:36:50 +0000 (09:36 -0500)]
Rename GrBatch to GrOp

Change-Id: I27b6324f8040899fafeda23ca524bc54a4dbf090
Reviewed-on: https://skia-review.googlesource.com/5392
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
7 years agoRemove pipeline info dump from GrDrawBatch
Brian Salomon [Thu, 1 Dec 2016 14:35:30 +0000 (09:35 -0500)]
Remove pipeline info dump from GrDrawBatch

Also adds more overrides of GrBatch::dumpInfo.

This removes a use case of the GrPipeline member of GrDrawBatch.

Change-Id: I93f5f2993be41ffa290122f12a683d2bac453e1d
Reviewed-on: https://skia-review.googlesource.com/5354
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoRevert "Revert "remove (empty) SkXfermode.h""
Mike Reed [Thu, 1 Dec 2016 14:30:08 +0000 (09:30 -0500)]
Revert "Revert "remove (empty) SkXfermode.h""

This reverts commit c5d0147717e50acba106b76c6c345192274ddc06.

g3 is updated to allow this to land

BUG=skia:

Change-Id: I5f4b06c2dc77dfa66d9b32348375151177511a65
Reviewed-on: https://skia-review.googlesource.com/5406
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoNo SkEncodeImageAsKTX for ANDROID_FRAMEWORK
Hal Canary [Thu, 1 Dec 2016 14:24:03 +0000 (09:24 -0500)]
No SkEncodeImageAsKTX for ANDROID_FRAMEWORK

BUG=skia:

Change-Id: Ia2925eb6aecd576d078256013fe122a468c30a5a
Reviewed-on: https://skia-review.googlesource.com/5421
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

7 years agoSkColorSpaceXform bug fixes
Matt Sarett [Wed, 30 Nov 2016 23:49:40 +0000 (18:49 -0500)]
SkColorSpaceXform bug fixes

(1) Clamp properly!

Finally came to this realization: clamping in the
store functions (after gamma encoding) is ridiculous.
It is impossible to know how to clamp premul values
to alpha when they are already gamma encoded.

I've moved the clamp out of the store function.
Whew, this actually makes the code look simpler.

And I expect this to fix some buggy images on Gold!

(2) Correctly handle the memcpy() case.

Looks like this only ever worked for RGBA inputs,
never got updated when we added BGRA inputs.

This probably flew under the radar because the
clients are smart enough to avoid performing a
color xform altogether when the color spaces
match.

BUG=skia:

Change-Id: I4870048105efcbecc70b4bd5f77c39537006363e
Reviewed-on: https://skia-review.googlesource.com/5389
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years ago[nobuildbot] CT bots
Eric Boren [Wed, 30 Nov 2016 19:05:16 +0000 (14:05 -0500)]
[nobuildbot] CT bots

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5183

Change-Id: I2d131415c912790cf1aeceaccc23be85ade7f5f0
Reviewed-on: https://skia-review.googlesource.com/5183
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>

7 years agosupport medium and high quality
Mike Klein [Tue, 29 Nov 2016 21:37:12 +0000 (16:37 -0500)]
support medium and high quality

Change-Id: I4ed750932cd6c768e21ca9f4a9e7f5f2408cfa4d
Reviewed-on: https://skia-review.googlesource.com/5323
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoSkEncodeImage: no more link-time registration
Hal Canary [Wed, 30 Nov 2016 22:07:59 +0000 (17:07 -0500)]
SkEncodeImage: no more link-time registration

Also, no more SkImageEncoder class.

SK_SUPPORT_LEGACY_IMAGE_ENCODER_CLASS now only guards some
old API shims.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5006

Change-Id: I3797f584f3e8e12ade10d31e8733163453725f40
Reviewed-on: https://skia-review.googlesource.com/5006
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoRemove GrBatch::renderTarget() and use GrBatch::renderTargetUniqueID() instead.
Brian Salomon [Wed, 30 Nov 2016 15:52:10 +0000 (10:52 -0500)]
Remove GrBatch::renderTarget() and use GrBatch::renderTargetUniqueID() instead.

Change-Id: I621ed38955e374c79a4d44c0020f9bae9655f001
Reviewed-on: https://skia-review.googlesource.com/5344
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoRemove unused copySurfaceAsDraw code from GrVkGpu
Brian Osman [Wed, 30 Nov 2016 20:22:43 +0000 (15:22 -0500)]
Remove unused copySurfaceAsDraw code from GrVkGpu

The actual implementation of this lives in GrVkCopyManager now

BUG=skia:

Change-Id: I8b0577acef3ac3b9e835605d4044336975a96ee5
Reviewed-on: https://skia-review.googlesource.com/5390
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>

7 years agofold more in SkRasterPipelineBlitter
Mike Klein [Wed, 30 Nov 2016 21:40:56 +0000 (16:40 -0500)]
fold more in SkRasterPipelineBlitter

No change in behavior.  This just moves the responsibility for this optimization to the blitter (which knows what it's doing) rather than to compile_pipeline(), which sort of has to guess.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I93ad0ac896075deab995b865b188b42de637f0f7
Reviewed-on: https://skia-review.googlesource.com/5398
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
7 years agoconstant means constant
Mike Klein [Wed, 30 Nov 2016 21:05:10 +0000 (16:05 -0500)]
constant means constant

Strip all the "constant" verbiage out of stages that really just mean 1, single, scalar.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I3d71202b348fadc3ced8ecb6c18c939cf92d7243
Reviewed-on: https://skia-review.googlesource.com/5396
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRemove batch bounds drawing debug option
Brian Salomon [Wed, 30 Nov 2016 20:08:13 +0000 (15:08 -0500)]
Remove batch bounds drawing debug option

Change-Id: I6b8ffc81a1255974f8acd1dfc47cfd406fd4b0bf
Reviewed-on: https://skia-review.googlesource.com/5335
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoRevert "Show constant-foldable runs in SkRasterPipeline::dump()."
Mike Klein [Wed, 30 Nov 2016 20:54:37 +0000 (20:54 +0000)]
Revert "Show constant-foldable runs in SkRasterPipeline::dump()."

This reverts commit 9ac7b2c545769a6b7c863b8e4c7f88096c9a9969.

Reason for revert: misguided.

Original change's description:
> Show constant-foldable runs in SkRasterPipeline::dump().
>
> Change-Id: I2f85249a09163dd21a8008f50340b8463718ada2
> Reviewed-on: https://skia-review.googlesource.com/5350
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Commit-Queue: Mike Klein <mtklein@chromium.org>
>

TBR=mtklein@chromium.org,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I3ae6c8ec11853592b332a17aefd611dc238e6c26
Reviewed-on: https://skia-review.googlesource.com/5394
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoFix error: ‘access’ may be used uninitialized in this function
Joe Gregorio [Wed, 30 Nov 2016 19:33:42 +0000 (14:33 -0500)]
Fix error: ‘access’ may be used uninitialized in this function
 [-Werror=maybe-uninitialized]
in GrGLGpu::bindImageStorage.

Found because this broke the compiles for the debugger, imageinfo, and fiddle,
but apparently not any bots?

BUG=skia:

Change-Id: Id8f964bca4f6493428b35c1b64df468b9d1419db
Reviewed-on: https://skia-review.googlesource.com/5380
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>

7 years agoremove more old cmake files
Hal Canary [Wed, 30 Nov 2016 20:35:33 +0000 (15:35 -0500)]
remove more old cmake files

NOTRY=true

Change-Id: I53326b62467aeb6346325597f0223e247fefed8c
Reviewed-on: https://skia-review.googlesource.com/5391
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

7 years agoMake GrGpuCommandBuffer infer its render target from first draw
Brian Salomon [Wed, 30 Nov 2016 18:38:32 +0000 (13:38 -0500)]
Make GrGpuCommandBuffer infer its render target from first draw

This is a temporary workaround to allow removal of GrBatch::renderTarget().

Change-Id: Ic14710a369802064cf6446e8191a98ea3595556d
Reviewed-on: https://skia-review.googlesource.com/5342
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
7 years agoBring back SkRasterPipeline::run() for one-off uses.
Mike Klein [Wed, 30 Nov 2016 18:45:06 +0000 (13:45 -0500)]
Bring back SkRasterPipeline::run() for one-off uses.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I308b6d75f2987a667eead9a55760a2ff6aec2984
Reviewed-on: https://skia-review.googlesource.com/5353
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoRevert "remove (empty) SkXfermode.h"
Brian Osman [Wed, 30 Nov 2016 19:36:41 +0000 (19:36 +0000)]
Revert "remove (empty) SkXfermode.h"

This reverts commit c5619cd1702759990f278ed87c3654a292f044d1.

Reason for revert: Want to keep Google3 green & be able to detect other changes breaking it.

Change-Id: I3a651d0996838ed12bc0cfc6ed464a2cee37fba4
Reviewed-on: https://skia-review.googlesource.com/5381
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
7 years agoDisable mipmap pre-generation path
Eric Karl [Wed, 30 Nov 2016 19:09:29 +0000 (11:09 -0800)]
Disable mipmap pre-generation path

There is a bug in the mipmap pre-generation logic in use in
getDeferredTextureImageData. This can cause runaway memory leaks, so we
are disabling this path until we can investigate further.

BUG=669775

Change-Id: I2027f6f7994e089edd4f3452284e894752b31779
Reviewed-on: https://skia-review.googlesource.com/5357
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years ago[nobuildbot] Rename Win bots back to Win8/Win10
Eric Boren [Wed, 30 Nov 2016 17:49:00 +0000 (12:49 -0500)]
[nobuildbot] Rename Win bots back to Win8/Win10

BUG=skia:

Change-Id: If66bdfc6cf15e11129048ee748430c3887132b75
Reviewed-on: https://skia-review.googlesource.com/5351
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Eric Boren <borenet@google.com>

7 years agoShow constant-foldable runs in SkRasterPipeline::dump().
Mike Klein [Wed, 30 Nov 2016 17:18:15 +0000 (12:18 -0500)]
Show constant-foldable runs in SkRasterPipeline::dump().

Change-Id: I2f85249a09163dd21a8008f50340b8463718ada2
Reviewed-on: https://skia-review.googlesource.com/5350
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agorestore sRGB memset optimization
Mike Klein [Wed, 30 Nov 2016 14:55:08 +0000 (09:55 -0500)]
restore sRGB memset optimization

https://skia-review.googlesource.com/c/5275/ removed it, and perf noticed.

This is obviously not very pretty or scalable.  I plan to folow up with a more thorough and principled way to do this sort of constant-color + invariant-stage == constant-color optimization.

BUG=skia:6013

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I377386f67e66169cce6e0cb0831f3b7154496840
Reviewed-on: https://skia-review.googlesource.com/5338
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoremove (empty) SkXfermode.h
Mike Reed [Wed, 30 Nov 2016 14:55:19 +0000 (09:55 -0500)]
remove (empty) SkXfermode.h

BUG=skia:

Change-Id: Id45c378c8f6267c6cd9a187155e3934bb6d624bf
Reviewed-on: https://skia-review.googlesource.com/5339
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoClarify documentation for CQ_INCLUDE_TRYBOTS.
Ben Wagner [Tue, 29 Nov 2016 22:30:46 +0000 (17:30 -0500)]
Clarify documentation for CQ_INCLUDE_TRYBOTS.

BUG=skia:

DOCS_PREVIEW= https://skia.org/?cl=5330
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Win-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE

Change-Id: I2e9fa401c470951a8676c2357bb409d136b971ad
Reviewed-on: https://skia-review.googlesource.com/5330
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>

7 years ago[nobuildbot] Remaining Win bots
Eric Boren [Wed, 30 Nov 2016 13:46:14 +0000 (08:46 -0500)]
[nobuildbot] Remaining Win bots

Also renamed Win8 and Win10 to Win

BUG=skia:

Change-Id: If6439ba8108d9fec288223a5561230a1559dad44
Reviewed-on: https://skia-review.googlesource.com/5237
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
7 years agoAdd support for resources on android Viewer
Greg Daniel [Tue, 29 Nov 2016 21:35:19 +0000 (16:35 -0500)]
Add support for resources on android Viewer

BUG=skia:

Change-Id: I1acc3e4fe6d0ce8bf29c52dd7280dff029a3abc2
Reviewed-on: https://skia-review.googlesource.com/5322
Reviewed-by: Yuqian Li <liyuqian@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>

7 years agoRemove cmake/
Mike Klein [Wed, 30 Nov 2016 12:43:19 +0000 (07:43 -0500)]
Remove cmake/

We've stopped testing and updating the experimental CMakeLists.txt file.

A guide to building Skia with GN is available at skia.org/user/build.

Change-Id: I3d3f8f2254f072b0520bd7a9b810c4e13b871680
Reviewed-on: https://skia-review.googlesource.com/5334
Reviewed-by: Heather Miller <hcm@google.com>
Commit-Queue: Heather Miller <hcm@google.com>

7 years agoAdd additional guard to the Analytic AA change
Yuqian Li [Tue, 29 Nov 2016 22:28:39 +0000 (17:28 -0500)]
Add additional guard to the Analytic AA change

This shall fix the DEPS roll.

BUG=skia:

Change-Id: I3ac208a8025c3408729b9e24e9c01e9f007a1799
Reviewed-on: https://skia-review.googlesource.com/5329
Reviewed-by: Yuqian Li <liyuqian@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>

7 years agoMake pipeline getter a GrDrawBatch::pipeline() a protected method.
Brian Salomon [Tue, 29 Nov 2016 22:09:20 +0000 (17:09 -0500)]
Make pipeline getter a GrDrawBatch::pipeline() a protected method.

This is a baby step towards making getting GrPipeline off GrDrawBatch.

Change-Id: I7e0331f3bcd45d1920a150fefb91e307efeeced1
Reviewed-on: https://skia-review.googlesource.com/5327
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoFixes for SkColorLookUpTable::interp3D
Matt Sarett [Tue, 29 Nov 2016 15:14:03 +0000 (10:14 -0500)]
Fixes for SkColorLookUpTable::interp3D

(1) Fix subtle comparison bug so we interpolate the proper tetrahedral.
(2) Add new comments - the clamp is necessary.
(3) SkCSXformPrintf requires an extra friend class to compile.

BUG:668784

Change-Id: Id1a5c561f23ccfe25e141b8490cddee4c2482326
Reviewed-on: https://skia-review.googlesource.com/5238
Reviewed-by: Robert Aftias <raftias@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>