platform/upstream/libSkiaSharp.git
7 years agoRevert "remove SK_SUPPORT_LEGACY_CLIP_REGIONOPS"
Mike Reed [Fri, 9 Dec 2016 13:14:25 +0000 (13:14 +0000)]
Revert "remove SK_SUPPORT_LEGACY_CLIP_REGIONOPS"

This reverts commit 8e7432b7f98dd592e529a0c8bb038d73ebfb0478.

Reason for revert: <INSERT REASONING HERE>

external/skia/bench/../tools/android/SkAndroidSDKCanvas.h:103:36: error: C++ requires a type specifier for all declarations
    void onClipRect(const SkRect&, ClipOp, ClipEdgeStyle) override;

Original change's description:
> remove SK_SUPPORT_LEGACY_CLIP_REGIONOPS
>
>
> switch over to SkClipOps now that SK_SUPPORT_LEGACY_CLIP_REGIONOPS is gone
>
> BUG=skia:
>
> Change-Id: Ifdc8b3746d508348a40cc009a4e529a1cb3c405d
> Reviewed-on: https://skia-review.googlesource.com/5714
> Commit-Queue: Mike Reed <reed@google.com>
> Reviewed-by: Mike Reed <reed@google.com>
>

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

Change-Id: If26ea91d7464615e43c1d3d2f726e337ff56b55c
Reviewed-on: https://skia-review.googlesource.com/5721
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoAdd the ability to use different mallocs.
Herb Derby [Fri, 9 Dec 2016 00:00:40 +0000 (19:00 -0500)]
Add the ability to use different mallocs.

gn gen --args='malloc="tcmalloc"'
gn gen --args='malloc="jemalloc"'

or if the library is in a non-standard directory
gn gen --args='malloc="tcmalloc" extra_ldflags="-L<path-to-library>"'

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

7 years agofix fuzzers
Cary Clark [Thu, 8 Dec 2016 21:17:56 +0000 (16:17 -0500)]
fix fuzzers

Two crashes and a hang. Abort and return false
in these cases.

TBR=kjlubick@google.com
BUG=skia:5983

Change-Id: I41ac3e56d47ee423b634b2f4886085b9caada76b
Reviewed-on: https://skia-review.googlesource.com/5716
Reviewed-by: Cary Clark <caryclark@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Cary Clark <caryclark@google.com>

7 years agoremove SK_SUPPORT_LEGACY_CLIP_REGIONOPS
Mike Reed [Thu, 8 Dec 2016 21:06:37 +0000 (16:06 -0500)]
remove SK_SUPPORT_LEGACY_CLIP_REGIONOPS

switch over to SkClipOps now that SK_SUPPORT_LEGACY_CLIP_REGIONOPS is gone

BUG=skia:

Change-Id: Ifdc8b3746d508348a40cc009a4e529a1cb3c405d
Reviewed-on: https://skia-review.googlesource.com/5714
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoRemove documentation about emboss.
Joe Gregorio [Thu, 8 Dec 2016 16:58:52 +0000 (11:58 -0500)]
Remove documentation about emboss.

BUG=skia:

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

Change-Id: Iac133df3778061509f5754aa6a742cebc2ab6ba6
Reviewed-on: https://skia-review.googlesource.com/5708
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Heather Miller <hcm@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>

7 years agosimplify bug
Cary Clark [Thu, 8 Dec 2016 19:36:32 +0000 (14:36 -0500)]
simplify bug

The path contains a cubic with a very tight curve.
Split the cubic into pieces so that the individual
curves are better behaved.

Use both inflections and max curvature to
potentially split cubics. Since this may require
a bit of work, preflight to ignore cubics that
monotonically change in x and y.

Only one of the three tests referred to by the bug
below repro'd. Use path.dumpHex() instead of
path.dump() to capture the crashing data.

TBR=reed@google.com
BUG=skia:6041

Change-Id: I29a264f87242cacc7c421e7685b90aca81621c74
Reviewed-on: https://skia-review.googlesource.com/5702
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Cary Clark <caryclark@google.com>

7 years agoremove SK_SUPPORT_LEGACY_CLIP_REGIONOPS flag
Mike Reed [Thu, 8 Dec 2016 20:01:33 +0000 (15:01 -0500)]
remove SK_SUPPORT_LEGACY_CLIP_REGIONOPS flag

BUG=skia:

Change-Id: I57871d008d3e630369edcef5473a1f1d1f0c0822
NOTRY=True
Reviewed-on: https://skia-review.googlesource.com/5715
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoremove SK_SUPPORT_LEGACY_REFENCODEDDATA_NOCTX flag
Mike Reed [Thu, 8 Dec 2016 18:41:10 +0000 (13:41 -0500)]
remove SK_SUPPORT_LEGACY_REFENCODEDDATA_NOCTX flag

BUG=skia:

Change-Id: I51b7778db8b596b2633b6be9488af984cee2af70
Reviewed-on: https://skia-review.googlesource.com/5713
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
7 years agoRemoved non-Identity matrix in non-PCSXYZ Input check for ICC profiles
raftias [Thu, 8 Dec 2016 16:56:34 +0000 (11:56 -0500)]
Removed non-Identity matrix in non-PCSXYZ Input check for ICC profiles

The presence seems to be disallowed in the specs (10.8/10.9), but two
test images on the ICC website have them, and fail if we abort. Replaced
the failure with a print warning.

BUG=skia:

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

7 years agoRevert "Remove antialiasing control from GrPaint."
Brian Salomon [Thu, 8 Dec 2016 16:57:38 +0000 (16:57 +0000)]
Revert "Remove antialiasing control from GrPaint."

This reverts commit 9f549358b3ac9f61e78b194e39d6ac6eb322e35e.

Reason for revert: hitting asserts

Change-Id: I542d34edc05ecf72b7646263f25736a0950c78e7
Reviewed-on: https://skia-review.googlesource.com/5707
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agolibviewer.so on Android, delete hello_skia_app
Mike Klein [Thu, 8 Dec 2016 14:49:39 +0000 (09:49 -0500)]
libviewer.so on Android, delete hello_skia_app

This spins off parts of 5620 to bake while we work through how to do the rest of libviewer.so -> viewer.apk.

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

7 years agoRemove antialiasing control from GrPaint.
Brian Salomon [Thu, 8 Dec 2016 15:35:19 +0000 (10:35 -0500)]
Remove antialiasing control from GrPaint.

This adds an additional param (of new enum type GrAA) to draws that can antialias and a new enum GrAAType to indicate the AA technique (none, fragment shader computed coverage, msaa).

Some GMs change due to this:
1) In some places we weren't disabling MSAA when the draw was supposed to be unantialiased.
2) Some bounding rect draws that use GrFragmentProcessors were unnecessarily turning on antialiasing, by disabling it a very small number of pixel LSBs change.

Change-Id: I7d8d8793dda70bcd373d09055beb9949c1a8a4d0
Reviewed-on: https://skia-review.googlesource.com/5608
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
7 years agoOn mips64el, use -B instead of linking .o manually.
Mike Klein [Thu, 8 Dec 2016 15:29:27 +0000 (10:29 -0500)]
On mips64el, use -B instead of linking .o manually.

These .o are only appropriate for linking executables; others would be used if we link an .so.

-B turns out to be the flag we really wanted here anyway, adding that directory to the search path for all these .o files, letting Clang pick the right one.  The existing comment is now correct for both the lib_dirs and ldflags +=.

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

7 years agoAdded some named gamma recognition to lutnType ICC profile parsing
raftias [Mon, 5 Dec 2016 19:21:45 +0000 (14:21 -0500)]
Added some named gamma recognition to lutnType ICC profile parsing

Most CMYK images I tested had linear gamma specified as tables, which
is easily recognized and when present allows an entire SkRasterPipeline
stage to be avoided for every single channel. This is likely due to the
fact that gamma tables are required in lutntype A2B0 profiles.

BUG=skia:

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

7 years agoFix bitmap-image srgb gm
Matt Sarett [Thu, 8 Dec 2016 13:32:44 +0000 (08:32 -0500)]
Fix bitmap-image srgb gm

This changed behavior when asLegacyBitmap() was modified to always
initiate a decode in legacy mode.

This fixes the gm to work as originally intended.

BUG=skia:

Change-Id: I34d35f6f445bd4606c6e28f83905702ec0b36bbb
Reviewed-on: https://skia-review.googlesource.com/5696
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agoAdded clamps in SkRasterPipeline's gamma stages.
raftias [Mon, 5 Dec 2016 21:30:41 +0000 (16:30 -0500)]
Added clamps in SkRasterPipeline's gamma stages.

Clamping stages were also removed from SkColorSpace_A2B as they are now
not needed.

BUG=skia:

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

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

7 years agoRoll third_party/externals/freetype 4d3f7ca8cedb..ffd8f622360
Ben Wagner [Wed, 7 Dec 2016 20:43:03 +0000 (20:43 +0000)]
Roll third_party/externals/freetype 4d3f7ca8cedb..ffd8f622360

https://skia.googlesource.com/third_party/freetype2.git/+log/4d3f7ca8cedb..ffd8f622360

Change-Id: Ia9d8af09253d0aff343c2310f5eb8c934b2ebbda
Reviewed-on: https://skia-review.googlesource.com/5685
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>

7 years agoAdd .clang-format file to include/gpu src/gpu
Brian Salomon [Thu, 8 Dec 2016 14:21:00 +0000 (09:21 -0500)]
Add .clang-format file to include/gpu src/gpu

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

7 years ago[SVGDom] ClipPath support
Florin Malita [Thu, 8 Dec 2016 14:26:47 +0000 (09:26 -0500)]
[SVGDom] ClipPath support

  * clip-path attribute handling
  * clipPath container element
  * asPath() SkSVGNode virtual for capturing subtree geometry

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

Change-Id: I9597534fe3047b631da6309eafac055dff5696e9
Reviewed-on: https://skia-review.googlesource.com/5650
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>

7 years agoAdd fuzzing for decoding animated images
Leon Scroggins III [Thu, 8 Dec 2016 14:07:56 +0000 (09:07 -0500)]
Add fuzzing for decoding animated images

Add a new mode to decode all frames of an animated image. Use
incremental decoding, rather than getPixels, since the primary client
uses incremental decoding.

Do not decode animated as index 8, which is only supported for the
first frame.

Change-Id: I5d7ed1a81c1ef37df3701c483486d4beff0f62a7
Reviewed-on: https://skia-review.googlesource.com/5679
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>

7 years agoMake sure all the convolve functions are defined.
Mike Klein [Thu, 8 Dec 2016 02:36:49 +0000 (21:36 -0500)]
Make sure all the convolve functions are defined.

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

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

7 years agoadd missing []
Mike Klein [Thu, 8 Dec 2016 02:10:37 +0000 (21:10 -0500)]
add missing []

BUG=skia:6039

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

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

7 years agoAdd AVX2 version of ConvolveVertically
xiangze.zhang [Thu, 8 Dec 2016 01:54:04 +0000 (17:54 -0800)]
Add AVX2 version of ConvolveVertically

ConvolveVertically time is reduced about 60% using haswell cpu.
Nanobench results:
                             before    after
bitmap_scale_filter_64_256    611us    302us
bitmap_scale_filter_80_90     101us    64.9us
bitmap_scale_filter_30_90    82.3us    51.4us
bitmap_scale_filter_10_90    73.6us    42.4us

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

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

7 years agoRevert "Add antialiasing to SkDropShadowImageFilter's shadow draw"
Robert Phillips [Thu, 8 Dec 2016 00:16:21 +0000 (00:16 +0000)]
Revert "Add antialiasing to SkDropShadowImageFilter's shadow draw"

This reverts commit 78e8165ec3a408a88c394095bfbc43df2051449d.

Reason for revert: Chrome pixel test

Original change's description:
> Add antialiasing to SkDropShadowImageFilter's shadow draw
>
> A BW draw in the SkDropShadowImageFilter can lead to unexpected popping of the shadow when the dest rect lies on half pixel boundaries.
>
> Change-Id: Ibc59dacc79bca8955981ec2889e79facd7d2de83
> Reviewed-on: https://skia-review.googlesource.com/5669
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
>

TBR=bsalomon@google.com,robertphillips@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I0b0073cd8d9f1502daaa452c2153af029c11e52a
Reviewed-on: https://skia-review.googlesource.com/5652
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
7 years agoRename GrBatchFlushState to GrOpFlushState
Brian Salomon [Wed, 7 Dec 2016 22:06:19 +0000 (17:06 -0500)]
Rename GrBatchFlushState to GrOpFlushState

Change-Id: I1a8052c61d7624929caf45ba44e2a465cd0dc1c2
Reviewed-on: https://skia-review.googlesource.com/5649
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
7 years agoRename GrRTC::drawBatch to addDrawOp and local vars in GrRTC.cpp
Brian Salomon [Wed, 7 Dec 2016 21:44:58 +0000 (16:44 -0500)]
Rename GrRTC::drawBatch to addDrawOp and local vars in GrRTC.cpp

Change-Id: Ic8b896d7779844de5f82f9f0e630508578a8f61d
Reviewed-on: https://skia-review.googlesource.com/5647
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
7 years agono need for SK_SUPPORT_LEGACY_CANVAS_IS_REFCNT anymore
Mike Reed [Wed, 7 Dec 2016 21:52:58 +0000 (16:52 -0500)]
no need for SK_SUPPORT_LEGACY_CANVAS_IS_REFCNT anymore

BUG=skia:

Change-Id: If0aa01beb8be9bd7d9a3a5b23c795223b02f02d3
Reviewed-on: https://skia-review.googlesource.com/5690
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoremove SK_SUPPORT_LEGACY_CANVAS_IS_REFCNT from android
Mike Reed [Wed, 7 Dec 2016 21:59:11 +0000 (16:59 -0500)]
remove SK_SUPPORT_LEGACY_CANVAS_IS_REFCNT from android

BUG=skia:

Change-Id: I78db77832431d1847cef7de1f74613bfe6b87c7d
NOTRY=True
Reviewed-on: https://skia-review.googlesource.com/5691
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoSkBitmap::ComputeIsOpaque -> SkPixmap::computeIsOpaque
Hal Canary [Wed, 7 Dec 2016 20:24:59 +0000 (15:24 -0500)]
SkBitmap::ComputeIsOpaque -> SkPixmap::computeIsOpaque

Motivation:  Twice internal Skia clients have to do something awkward like this:

    bool ComputeIsOpaque(const SkPixmap& pixmap) {
      SkBitmap bm;
      return bm.installPixels(pixmap) && SkBitmap::ComputeIsOpaque(bm);
    }

Change-Id: I7263c06f754c1305ecb07c4c005d9cfb9d1f523d
Reviewed-on: https://skia-review.googlesource.com/5684
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

7 years agoRevert "Fix SDF generation for pixel-aligned paths"
Jim Van Verth [Wed, 7 Dec 2016 20:51:11 +0000 (20:51 +0000)]
Revert "Fix SDF generation for pixel-aligned paths"

This reverts commit 92964124c5ff61729357a51dc212ca5938093e89.

Reason for revert: Causing roll failure. Need to find images to rebaseline

Change-Id: I09cad4c3a48fefcfc669fb1045613336c88cb33a
Reviewed-on: https://skia-review.googlesource.com/5686
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
7 years agofix build. tests/BitmapTest w/ nogpu
Hal Canary [Wed, 7 Dec 2016 21:21:53 +0000 (16:21 -0500)]
fix build. tests/BitmapTest w/ nogpu

NOTRY=true
TBR=herb@google.com

Change-Id: I09d7bd262a805e109a0869a83dec05ae03cff747
Reviewed-on: https://skia-review.googlesource.com/5687
Reviewed-by: Hal Canary <halcanary@google.com>
7 years agoremove SK_SUPPORT_LEGACY_CLIP_REGIONOPS for android
Mike Reed [Wed, 7 Dec 2016 18:48:25 +0000 (13:48 -0500)]
remove SK_SUPPORT_LEGACY_CLIP_REGIONOPS for android

... to land *after* we land the change in master to use SkClipOps

BUG=skia:

Change-Id: I58d73866324aae9b9693afcd2a81aef503241a46
NOTRY=True
TBR=djsollen
Reviewed-on: https://skia-review.googlesource.com/5678
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoSkBitmap::ComputeIsOpaque and SkBitmap::eraseColor support F16
Hal Canary [Wed, 7 Dec 2016 19:59:27 +0000 (14:59 -0500)]
SkBitmap::ComputeIsOpaque and SkBitmap::eraseColor support F16

Also add a unit test.

Change-Id: I9b6635ce9dd504788ca36b3246eaac2b37c2f3a6
Reviewed-on: https://skia-review.googlesource.com/5443
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoRename batch->op in GrOpList and subclasses
Brian Salomon [Wed, 7 Dec 2016 20:05:04 +0000 (15:05 -0500)]
Rename batch->op in GrOpList and subclasses

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

7 years agoRework GrRenderTargetOpList::setupDstReadIfNecessary.
Brian Salomon [Wed, 7 Dec 2016 19:31:00 +0000 (14:31 -0500)]
Rework GrRenderTargetOpList::setupDstReadIfNecessary.

Move the necessary check to the caller. This removes the GrPipelineBuilder
param which makes this useable with future GrDrawOps that can be recorded without one.

Rename to setupDstTexture(). This only is involved in the texture method of getting the
destination color to the XP.

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

7 years agohide emboss from everyone (except android for now)
Mike Reed [Wed, 7 Dec 2016 18:41:57 +0000 (13:41 -0500)]
hide emboss from everyone (except android for now)

BUG=skia:

Change-Id: Ibd453b0a63948e3e4950f02459d7bc01a6ed26c5
Reviewed-on: https://skia-review.googlesource.com/5671
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
7 years agoAdd NarrowRGB gamut mode to SampleApp
Brian Osman [Fri, 2 Dec 2016 17:10:36 +0000 (12:10 -0500)]
Add NarrowRGB gamut mode to SampleApp

Helpful for reproducing DM failures from this config, and
comparing the results of out-of-gamut colors between gpu
and raster.

BUG=skia:

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

7 years agoSkip the sRGB mip-map testing on command buffer
brianosman [Wed, 7 Dec 2016 18:03:25 +0000 (10:03 -0800)]
Skip the sRGB mip-map testing on command buffer

Chromium command buffer now has the sRGB decode extension, but it doesn't
make any guarantees about the interaction with glGenerateMipmap.

BUG=skia:

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

7 years agogn_to_bp.py fixes
Mike Klein [Wed, 7 Dec 2016 17:27:56 +0000 (12:27 -0500)]
gn_to_bp.py fixes

  - no u"" strings
  - more pervasive sorting
  - include sources from optional Skia components (e.g. gpu, codec, pdf)
  - cosmetic nits

Change-Id: Ief0f293117dbfbc97584db185c067a8297067b74
Reviewed-on: https://skia-review.googlesource.com/5643
Reviewed-by: Leon Scroggins <scroggo@google.com>
7 years agoAdd antialiasing to SkDropShadowImageFilter's shadow draw
Robert Phillips [Wed, 7 Dec 2016 16:28:11 +0000 (11:28 -0500)]
Add antialiasing to SkDropShadowImageFilter's shadow draw

A BW draw in the SkDropShadowImageFilter can lead to unexpected popping of the shadow when the dest rect lies on half pixel boundaries.

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

7 years agoRevert "SkImageEncoder::* going away"
Hal Canary [Wed, 7 Dec 2016 16:37:43 +0000 (16:37 +0000)]
Revert "SkImageEncoder::* going away"

This reverts commit d7e16661bb36924b2c8f717c527b876dabb595f3.
Reason for revert: breaking g3
NOTRY=true
Change-Id: I56d53adca64a94b4f66dd0539634804a96e92ddf
Reviewed-on: https://skia-review.googlesource.com/5672
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
Reviewed-by: Herb Derby <herb@google.com>
7 years agoFix SDF generation for pixel-aligned paths
Jim Van Verth [Wed, 7 Dec 2016 15:40:09 +0000 (10:40 -0500)]
Fix SDF generation for pixel-aligned paths

BUG=668550

Change-Id: Ib496db82c7391aca61b31afaeb5445260170cc49
Reviewed-on: https://skia-review.googlesource.com/5549
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>

7 years agoSkImageEncoder::* going away
Hal Canary [Thu, 1 Dec 2016 16:19:26 +0000 (11:19 -0500)]
SkImageEncoder::* going away

Approval from https://review.skia.org/5006
TBR=reed@google.com

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

7 years agoTighten up when a line requires aa in SkGpuDevice.
Brian Salomon [Tue, 6 Dec 2016 21:52:24 +0000 (16:52 -0500)]
Tighten up when a line requires aa in SkGpuDevice.

For some reason this was dropping AA on horizontal/vertical lines at integers rather than half-integers.

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

7 years agoAdd gn_to_bp.py.
Mike Klein [Tue, 6 Dec 2016 21:03:52 +0000 (16:03 -0500)]
Add gn_to_bp.py.

The general idea here is, run GN in --ide=json mode to get most information.

Then, read a couple .gni files to get the rest (platform specific source lists, Android framework defines).

For now, I'm generating Android.bp and SkUserConfig.h.  I figure we can do DM and nanobench once these work?

Change-Id: I8e7f60d6572f2d4769760cf872895518a15d841b
Reviewed-on: https://skia-review.googlesource.com/5554
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agonanobench: Add per-run time reporting.
George Burgess IV [Tue, 6 Dec 2016 18:53:52 +0000 (10:53 -0800)]
nanobench: Add per-run time reporting.

This patch adds per-benchmark-iteration times to our JSON output. Given that we
already collect these statistics, giving them to the user would be nice.

No unit-test provided, since `rgrep -i json tests` yielded nothing. Happy to add
one if someone wants.

BUG=None.
TEST=nanobench now writes per-run timinings with the output JSON.

Change-Id: I910f1d97fd3e0ee69fc8e78e011e67b9c866f18d
Reviewed-on: https://skia-review.googlesource.com/5617
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Ravi Mistry <rmistry@google.com>

7 years agoRewrite GrRenderTargetContext::drawRegion antialias logic.
Brian Salomon [Tue, 6 Dec 2016 19:47:34 +0000 (14:47 -0500)]
Rewrite GrRenderTargetContext::drawRegion antialias logic.

This will hopefully make a later change that refactors how aa is passed to GrRenderTargetContext a little easier to review.

Change-Id: Ie750d237714a0407ec1e5604c0daa080da32519b
Reviewed-on: https://skia-review.googlesource.com/5630
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoAdd comment explaining the derivation of our Mitchell coefficients
Brian Osman [Tue, 6 Dec 2016 16:53:06 +0000 (11:53 -0500)]
Add comment explaining the derivation of our Mitchell coefficients

BUG=skia:

Change-Id: I8866df425ee9837e75f0b2f76777f7e5d68fb21d
Reviewed-on: https://skia-review.googlesource.com/5624
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoRefactor bilerp a little.
Mike Klein [Tue, 6 Dec 2016 16:31:25 +0000 (11:31 -0500)]
Refactor bilerp a little.

  1) rename to bilerp_xy, for x,y in {n[egative], p[ositive};
  2) pull out a save_xy stage to save off the original x,y;
  3) also calculate the fractional x,y fx,fy once instead of 4 times.

1) is a pure refactor;
2) adds a stage but otherwise is nothing different;
3) changes images a little bit (fractional parts can vary a bit around powers of two).

This extends naturally to naive bicubic using 16 bicubic_xy stages.

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

Change-Id: I666de5c21e978abb4feb6e3225e5b5920ba6c5b9
Reviewed-on: https://skia-review.googlesource.com/5550
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
7 years agoApply linear gradient premul in 4f
fmalita [Tue, 6 Dec 2016 16:57:47 +0000 (08:57 -0800)]
Apply linear gradient premul in 4f

(spotted by reed@)

Instead of converting to SkPMColor first, apply the premul in 4f and
then just store.

A modified bench shows a significant speedup:

  17/17  MB 1 690µs 695µs 695µs 700µs 0% █▅▁▄▆▅▁▅▆▃ 8888 gradient_linear_clamp_3color
  17/17  MB 1 832µs 837µs 839µs 870µs 1% █▁▁▂▂▂▂▂▂▂ 8888 gradient_linear_clamp_hicolor
  17/17  MB 1 651µs 659µs 665µs 701µs 3% ▆█▅▁▂▂▁▁▂▂ 8888 gradient_linear_clamp

vs.

  17/17  MB 1 1.03ms 1.03ms 1.04ms 1.08ms 2% ██▇▁▁▁▁▁▁▁ 8888 gradient_linear_clamp_3color
  17/17  MB 1 1.17ms 1.18ms 1.18ms 1.22ms 1% █▄▂▁▁▁▁▁▁▁ 8888 gradient_linear_clamp_hicolor
  17/17  MB 1 1.1ms 1.15ms 1.14ms 1.16ms 2% ▇▇▇▇▇▇██▁▁ 8888 gradient_linear_clamp

R=reed@google.com,brianosman@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2409583003

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

7 years agoDivide up CodecTest
Leon Scroggins III [Tue, 6 Dec 2016 15:58:02 +0000 (10:58 -0500)]
Divide up CodecTest

Split up DEF_TEST(Codec, r) by type. Frequently when I am testing
locally I only want to test one type (e.g. I am testing changes to
SkGifCodec), and this allows me to skip past the ones I do not care
about.

It also speeds up my local runs, since most of the time is spent in
this single long test. Splitting them up means they can run in
parallel, halving run time. (Probably doesn't make a big difference
on bots, where more tests are running.)

Change-Id: Ic6babc20e1288dbb4fb255290f71523a033c7559
Reviewed-on: https://skia-review.googlesource.com/5622
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
7 years agoUpdate SKP version
UpdateSKPs [Tue, 6 Dec 2016 16:12:35 +0000 (16:12 +0000)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=update-skps@skia.org
NO_MERGE_BUILDS

Change-Id: I5b61771039f30a8febe88605e72e0ecd76e14c4c
Reviewed-on: https://skia-review.googlesource.com/5623
Reviewed-by: update-skps <update-skps@skia.org>
Commit-Queue: update-skps <update-skps@skia.org>

7 years ago-pie applies only to executables
Mike Klein [Tue, 6 Dec 2016 15:46:02 +0000 (10:46 -0500)]
-pie applies only to executables

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

7 years agoRemove dest surface color mode from bitmap controller
Brian Osman [Tue, 6 Dec 2016 15:34:51 +0000 (10:34 -0500)]
Remove dest surface color mode from bitmap controller

This is already on the bitmap provider - no need to plumb it here.

BUG=skia:

Change-Id: Ie8c5aef8ea443c58d59598aa66e357ad4c212b25
Reviewed-on: https://skia-review.googlesource.com/5621
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
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>