Commit Graph

26035 Commits

Author SHA1 Message Date
Brian Osman
d9b6abb1a1 Remove (unused) YUV API from SkPixelRef
YUV conversion happens via SkImage now.

BUG=skia:

Change-Id: I6e1fa18effb72cbb00a173a346769b873e372c40
Reviewed-on: https://skia-review.googlesource.com/7034
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-01-13 20:40:11 +00:00
Mike Klein
69f98c738c SkSplicer: implement load_tables and matrix_3x4
These are enough to splice interesting SkColorSpaceXform pipelines.

SkSplicer_stages.cpp is similar to but still intentionally distinct from
SkRasterPipeline_opts.  I hope to unify them next week.

unaligned_load() is nothing tricky... just a little refactor.

Change-Id: I05d0fc38dac985aa351d88776ecc14d2457f2124
Reviewed-on: https://skia-review.googlesource.com/7022
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-01-13 20:30:25 +00:00
bungeman
2873c767fd Decode system font weight correctly on Mac.
The -1 to 1 weights reported by CTFontDescriptors have different mappings
depending on if the CTFont is native or created from a CGDataProvider.

Change-Id: I725b04a31c224a4b01c0763137fa04bb4088def7
Reviewed-on: https://skia-review.googlesource.com/6979
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2017-01-13 20:14:07 +00:00
Mike Klein
1d8e198d75 Revert "Optimize SkBlend by using NEON intrinsics"
This reverts commit 7adde145d3.

Reason for revert: may be breaking our Android One test bots.

Original change's description:
> Optimize SkBlend by using NEON intrinsics
> 
> Use NEON intrinsics to check the alpha channel of the pixels.
> 
> In some case, it's about 14 times faster than the original implementation.
> 
> $ ./bin/droid out/arm64_release/nanobench  --samples 300 --nompd --match LinearSrcOver -v > neon_opt.log
> $ ./bin/compare neon_opt.log clean.log
>      LinearSrcOver_yellow_rose.pngVSkOptsDefault         1.8ms -> 24.9ms        13.8x
>        LinearSrcOver_iconstrip.pngVSkOptsDefault        5.71ms -> 69.8ms        12.2x
>            LinearSrcOver_plane.pngVSkOptsDefault        1.45ms ->   11ms        7.62x
>         LinearSrcOver_baby_tux.pngVSkOptsDefault        1.88ms -> 9.96ms        5.29x
>     LinearSrcOver_mandrill_512.pngVSkOptsDefault        1.41ms -> 4.62ms        3.29x
>      LinearSrcOver_yellow_rose.pngVSkOptsTrivial        24.9ms -> 24.9ms        1x
>  LinearSrcOver_yellow_rose.pngVSkOptsNonSimdCore        2.17ms -> 2.18ms        1x
>            LinearSrcOver_plane.pngVSkOptsTrivial        11.1ms -> 11.1ms        1x
>        LinearSrcOver_plane.pngVSkOptsNonSimdCore         1.5ms ->  1.5ms        1x
> LinearSrcOver_mandrill_512.pngVSkOptsNonSimdCore        2.39ms -> 2.39ms        1x
>    LinearSrcOver_iconstrip.pngVSkOptsNonSimdCore        6.43ms -> 6.43ms        1x
>      LinearSrcOver_baby_tux.pngVSkOptsBruteForce        22.3ms -> 22.3ms        1x
>   LinearSrcOver_yellow_rose.pngVSkOptsBruteForce        45.5ms -> 45.5ms        1x
>     LinearSrcOver_baby_tux.pngVSkOptsNonSimdCore        2.02ms -> 2.02ms        1x
>        LinearSrcOver_iconstrip.pngVSkOptsTrivial        69.7ms -> 69.7ms        1x
>         LinearSrcOver_baby_tux.pngVSkOptsTrivial        9.96ms -> 9.95ms        1x
>  LinearSrcOver_mandrill_512.pngVSkOptsBruteForce        99.3ms -> 99.2ms        1x
> 
> BUG=skia:
> 
> CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
> 
> Change-Id: Ia576365578d65b771440da65fdf41f090ccf0541
> Reviewed-on: https://skia-review.googlesource.com/6860
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Commit-Queue: Mike Klein <mtklein@chromium.org>
> 

TBR=mtklein@chromium.org,bsalomon@google.com,joel.liang@arm.com,reviews@skia.org
BUG=skia:
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Ie40eb5a7c27807aaf396429a82a1a2dd328c2b5b
Reviewed-on: https://skia-review.googlesource.com/7036
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-01-13 20:13:20 +00:00
Jim Van Verth
43475ad9dc Move Android shadow rendering interface to util library.
BUG=skia:6119

Change-Id: I8318cf2758042ffd0c81c5fa74240acbf7bea61f
Reviewed-on: https://skia-review.googlesource.com/6999
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-01-13 20:09:02 +00:00
Brian Salomon
d4652ca1b7 Remove most modifiers of processors on GrPipelineBuilder
Change-Id: I2fc12a97d694e5c0d86c9a4e0818a058905c8cf0
Reviewed-on: https://skia-review.googlesource.com/6993
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-01-13 20:08:16 +00:00
Ethan Nicholas
2503ab6e92 Fixed another division by zero error in skslc
You'd think by now it would have occurred to me that mod is also a kind
of division.

BUG=skia:6087

Change-Id: I5128d09db94d06f10762ad5c23df32551c5e5855
Reviewed-on: https://skia-review.googlesource.com/6607
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-01-13 19:52:36 +00:00
Matt Sarett
c55bc9a8dd Fix out of bounds read in RP::load_tables_u16_be()
BUG=skia:

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

Change-Id: I4f6dd002b03812d63bf62342c346ea21f6865466
Reviewed-on: https://skia-review.googlesource.com/7027
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-01-13 19:49:19 +00:00
Dean McNamee
3b830a9ea3 Simplify k.w calculation in getConicKLM.
Additionally reformat the equations to better expose the symmetry.

BUG=skia:

Change-Id: If485cc7aeae97b89dedeb4d6b23efbe945036e3a
Reviewed-on: https://skia-review.googlesource.com/7000
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Dean McNamee <deanm@chromium.org>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2017-01-13 19:47:33 +00:00
Stephen White
930f69eef3 Switch a bunch of tests to use DEF_SIMPLE_GM.
Should be no user- or test-visible changes.

BUG=skia:

Change-Id: I6499dc978a41fee344b847c118f84227271561c5
Reviewed-on: https://skia-review.googlesource.com/6906
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephan White <senorblanco@chromium.org>
2017-01-13 18:49:11 +00:00
Matt Sarett
cf5d6caff7 Add SkImageInfoValidConversion() and SkImageInfoIsValid
The idea is share these standards for the following:
SkImage::readPixels()
SkCanvas::readPixels()
SkCanvas::writePixels()
SkBitmap::readPixels()
SkPixmap::readPixels()

On the raster side, SkPixmap::readPixels() is the right
place to check, because all raster calls go through
there eventually.  Then at lower levels (ex: SkPixelInfo),
we can assert.

There's not really a unifying location for gpu calls,
so I've added this in multiple places.  I haven't really
dug into the gpu code to SkASSERT() on invalid cases
that we will have already caught.

Follow-up work:
Similar refactor for SkReadPixelRec::trim().
Code cleanup in SkPixelInfo::CopyPixels()

BUG=skia:6021

Change-Id: I91ecce10e46c1a6530f0af24a9eb8226dbecaaa2
Reviewed-on: https://skia-review.googlesource.com/6887
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2017-01-13 18:48:00 +00:00
Herb Derby
0497f088bb Introduce SkArenaAlloc - should be fast for POD types and RAII for types with dtors.
- Implementation.
- Use in SkLinearPipeline.

TBR=mtklein@google.com

Change-Id: Ie014184469b217132b0307b5a9ae40c0c60e5fc9
Reviewed-on: https://skia-review.googlesource.com/6921
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2017-01-13 18:45:19 +00:00
Lee Salzman
b569056be7 simplify round_down_to_int by using ceil instead of floor
BUG=skia:

Change-Id: I465d98d6b0d97e1ede82670c663f9695b5a0a1de
Reviewed-on: https://skia-review.googlesource.com/7041
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Cary Clark <caryclark@google.com>
2017-01-13 18:38:22 +00:00
Brian Salomon
6f1d36cc54 Delay SkPaint->GrPaint conversion in text rendering.
This fixes an issue where color filters aren't correctly applied to color glyphs. Instead we apply the filter to the SkPaint's color which is correct for mask glyphs only.

Add color filter and alpha + various effects to coloremoji gm

Change-Id: If77dece71d43468fec65499857eaaaedb56428e9
Reviewed-on: https://skia-review.googlesource.com/6891
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2017-01-13 17:38:10 +00:00
Florin Malita
0ed3b640c9 Revert "Revert "Hide SkCanvas getDevice() & getTopDevice()}""
This reverts commit e050ca7832.

Reason for revert: Chromium change is sticking, revert not needed.

Change-Id: Ic3004460606e4c512f79ba0923746706b960881a
Reviewed-on: https://skia-review.googlesource.com/7021
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Florin Malita <fmalita@google.com>
2017-01-13 17:30:19 +00:00
Mike Klein
aa9b5a1fd9 call fetch-gn from git-sync-deps
https://skia.org/?cl=6994

Change-Id: Icac009bdef49f38ae7b8f082ffda6408481a03cd
Reviewed-on: https://skia-review.googlesource.com/6994
Reviewed-by: Hal Canary <halcanary@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-01-13 17:25:56 +00:00
Mike Klein
4ef8cb3527 some armv7 hacking
We can splice these stages if we drop them down to 2 at a time.
Turns out this is significantly (2-3x) faster than the status quo.

    SkRasterPipeline_…
    …f16_compile 1x  …srgb_compile 2.06x  …f16_run 3.08x  …srgb_run 4.61x

Added a couple ways to detect (likely) the required VFPv4 support:
   - use hwcap when available (NDK ≥21, Android framework)
   - use cpu-features when not (NDK <21)

The code in SkSplicer_generated.h is ARM, not Thumb2.  SkSplicer seems
to be blx'ing into it, so that's great, and we bx lr out.  There's no
point in attempting to use Thumb2 in vector heavy code... it'll all be
4 byte anyway.

Follow ups:
   - vpush {d8-d9} before the loop, vpop {d8-d9} afterwards,
     skip these instructions when splicing;
   - (probably) drop jumping stages down to 2-at-a-time also.

Change-Id: If151394ec10e8cbd6a05e2d81808488d743bfe15
Reviewed-on: https://skia-review.googlesource.com/6940
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-01-13 17:25:15 +00:00
Robert Phillips
70b49fd063 Minor Ganesh refFoo cleanup
Change-Id: I2c66693c280225795a5d36ccc0391fcd4056420d
Reviewed-on: https://skia-review.googlesource.com/6995
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-01-13 17:15:18 +00:00
Robert Phillips
f809c1ec98 Try out new refFoo pattern on GrStyle
Change-Id: Ic7f30e3730a3431adf365d729320fe50f38dcea8
Reviewed-on: https://skia-review.googlesource.com/6907
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-01-13 16:50:25 +00:00
Kevin Lubick
5ac8260268 Update Nexus Players to N2G10B
This will hopefully bring in driver fixes, especially for Vulkan.

BUG=skia:

Change-Id: I6a8f1bf249d78d9360c52e0382250b63ae0cc96d
Reviewed-on: https://skia-review.googlesource.com/6989
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2017-01-13 16:35:29 +00:00
Robert Phillips
75a475cf2e Try out refFoo pattern on GrRenderTargetContext
Change-Id: Ifae5618f30c2202b9083f479b58556709ff6126a
Reviewed-on: https://skia-review.googlesource.com/6990
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-01-13 16:09:34 +00:00
Yuqian Li
550148ba57 Reland https://skia-review.googlesource.com/c/6091/
The only difference is that we now also put the guard flag
SK_SUPPORT_LEGACY_AAA in SkUserConfig.h. Previously, SkAnalyticEdge.cpp doesn't
get that flag from SkScan.h and that caused many problems.

BUG=skia:
TBR=reed@google.com,caryclark@google.com

Change-Id: I134bb76cebd6fffa712f438076668765321bba3b
Reviewed-on: https://skia-review.googlesource.com/6992
Reviewed-by: Yuqian Li <liyuqian@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
2017-01-13 16:07:48 +00:00
Mike Klein
905a94ff39 gclient-free download and build instructions.
https://skia.org/?cl=6988

Change-Id: If1275fe3cb1866216cc24c42c11a2d1f1be04a66
Reviewed-on: https://skia-review.googlesource.com/6988
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-01-13 15:14:28 +00:00
Florin Malita
e050ca7832 Revert "Hide SkCanvas getDevice() & getTopDevice()}"
This reverts commit 76467a11a0.

Reason for revert: we may need to revert the Chromium GDI change.

Original change's description:
> Hide SkCanvas getDevice() & getTopDevice()}
> 
> No longer used externally.
> 
> R=reed@google.com
> 
> Change-Id: I450148010852c2567d136d2c85c8837c6dcbc6b9
> Reviewed-on: https://skia-review.googlesource.com/6974
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Florin Malita <fmalita@chromium.org>
> 

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

Change-Id: If8480aa5d36ff843c28409a5c94d51570ba0fc1c
Reviewed-on: https://skia-review.googlesource.com/6991
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Florin Malita <fmalita@google.com>
2017-01-13 15:13:23 +00:00
Brian Osman
c74dad6f18 Remove spurious checks for sRGB float data
We don't support this. F16 or F32 textures must be built with a linear
transfer function, if any.

BUG=skia:

Change-Id: Ia8d83a03d12ddc3b70f5d7e4fabed72f6c2af538
Reviewed-on: https://skia-review.googlesource.com/6978
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-01-13 14:53:48 +00:00
Matt Sarett
523116d9fe Unify ICC support for gray jpegs and gray pngs
(1) Parse ICC gray profiles into RGB SkColorSpace objects.  This is
    easy - "gray transfer fn + white point" is subset of "RGB transfer fns
    + matrix".  This makes it easier/possible for the drawing code to reason
    about color spaces attached to kGray buffers.
(2) Allow gray images to be tagged with gray ICCs OR rgb ICCs.  ICC gray
    forces to designer to use "D50 gray".  It is not uncommon to see gray
    images with RGB profiles - and this actually allows the designer to
    choose more kinds of gray (ex: sRGB gray).
(3) Make SkJpegCodec support gray images with RGB ICCs.
(4) Make SkPngCodec support gray images with Gray ICCs.
(5) Delete gray from SkColorSpace_A2B - we no longer create these objects
    for gray profiles.

BUG=skia:

Change-Id: Id5eca803798330c54a19c4657def2e5976d1941e
Reviewed-on: https://skia-review.googlesource.com/6922
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-01-13 14:39:25 +00:00
Florin Malita
76467a11a0 Hide SkCanvas getDevice() & getTopDevice()}
No longer used externally.

R=reed@google.com

Change-Id: I450148010852c2567d136d2c85c8837c6dcbc6b9
Reviewed-on: https://skia-review.googlesource.com/6974
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-01-13 14:09:20 +00:00
Joel Liang
7adde145d3 Optimize SkBlend by using NEON intrinsics
Use NEON intrinsics to check the alpha channel of the pixels.

In some case, it's about 14 times faster than the original implementation.

$ ./bin/droid out/arm64_release/nanobench  --samples 300 --nompd --match LinearSrcOver -v > neon_opt.log
$ ./bin/compare neon_opt.log clean.log
     LinearSrcOver_yellow_rose.pngVSkOptsDefault         1.8ms -> 24.9ms        13.8x
       LinearSrcOver_iconstrip.pngVSkOptsDefault        5.71ms -> 69.8ms        12.2x
           LinearSrcOver_plane.pngVSkOptsDefault        1.45ms ->   11ms        7.62x
        LinearSrcOver_baby_tux.pngVSkOptsDefault        1.88ms -> 9.96ms        5.29x
    LinearSrcOver_mandrill_512.pngVSkOptsDefault        1.41ms -> 4.62ms        3.29x
     LinearSrcOver_yellow_rose.pngVSkOptsTrivial        24.9ms -> 24.9ms        1x
 LinearSrcOver_yellow_rose.pngVSkOptsNonSimdCore        2.17ms -> 2.18ms        1x
           LinearSrcOver_plane.pngVSkOptsTrivial        11.1ms -> 11.1ms        1x
       LinearSrcOver_plane.pngVSkOptsNonSimdCore         1.5ms ->  1.5ms        1x
LinearSrcOver_mandrill_512.pngVSkOptsNonSimdCore        2.39ms -> 2.39ms        1x
   LinearSrcOver_iconstrip.pngVSkOptsNonSimdCore        6.43ms -> 6.43ms        1x
     LinearSrcOver_baby_tux.pngVSkOptsBruteForce        22.3ms -> 22.3ms        1x
  LinearSrcOver_yellow_rose.pngVSkOptsBruteForce        45.5ms -> 45.5ms        1x
    LinearSrcOver_baby_tux.pngVSkOptsNonSimdCore        2.02ms -> 2.02ms        1x
       LinearSrcOver_iconstrip.pngVSkOptsTrivial        69.7ms -> 69.7ms        1x
        LinearSrcOver_baby_tux.pngVSkOptsTrivial        9.96ms -> 9.95ms        1x
 LinearSrcOver_mandrill_512.pngVSkOptsBruteForce        99.3ms -> 99.2ms        1x

BUG=skia:

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

Change-Id: Ia576365578d65b771440da65fdf41f090ccf0541
Reviewed-on: https://skia-review.googlesource.com/6860
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-01-13 13:28:16 +00:00
Mike Klein
e71b167dbd Attempt 3: SkRasterPipelineBlitter: support A8
Now that SkOpts_hsw.cpp no longer hooks in SkRasterPipeline_opts,
it should be safe to try this again.

This reverts commit 86d55b312a.

Change-Id: I2d495600ca9d3a0f49c2e02fbaaae349cefac3a1
Reviewed-on: https://skia-review.googlesource.com/6985
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-01-13 13:25:28 +00:00
Yuqian Li
aeef5610d7 Revert "Reland https://skia-review.googlesource.com/c/6091/"
This reverts commit b46fff60bc.

Reason for revert: possible chromium cc unit tests failure

Change-Id: Ie174c55e4d0fc3ae45854b5897ba26b7ad5a9c13
Reviewed-on: https://skia-review.googlesource.com/6981
Commit-Queue: Yuqian Li <liyuqian@google.com>
Reviewed-by: Yuqian Li <liyuqian@google.com>
2017-01-13 00:37:20 +00:00
Matt Sarett
379938e47b Use RasterPipeline to support full precision on 16-bit RGBA pngs
Reland of Original Change:
https://skia-review.googlesource.com/6260

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

Change-Id: I809984dd9af225103bfbe83492a17c19da7c5e40
Reviewed-on: https://skia-review.googlesource.com/6980
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-01-13 00:12:49 +00:00
Stan Iliev
ac42aebb7b Add support for drawImageLattice in SKIA debugger
Add support in SKIA debugger for SkCanvas.drawImageLattice calls.

Test: Tested with an SKP from android settings app.
Change-Id: I3f39f353dca8a3a2854241e7ef995d4d8c635f3e
Reviewed-on: https://skia-review.googlesource.com/6882
Commit-Queue: Stan Iliev <stani@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
2017-01-12 21:55:35 +00:00
Yuqian Li
b46fff60bc Reland https://skia-review.googlesource.com/c/6091/
The only difference is that we now put the guard flag SK_SUPPORT_LEGACY_AAA in
SkUserConfig.h instead of SkScan.h. Previously, SkAnalyticEdge.cpp doesn't get
that flag from SkScan.h and that caused many problems.

BUG=skia:
TBR=reed@google.com,caryclark@google.com

Change-Id: I7b89d3cb64ad71715101d2a5e8e77be3a8a6fa16
Reviewed-on: https://skia-review.googlesource.com/6972
Reviewed-by: Yuqian Li <liyuqian@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
2017-01-12 21:13:20 +00:00
Matt Sarett
25b60833e7 Revert "Use RasterPipeline to support full precision on 16-bit RGBA pngs"
This reverts commit bb2339da39.

Reason for revert: Breaks MSAN

Original change's description:
> Use RasterPipeline to support full precision on 16-bit RGBA pngs
> 
> TODO: Support more precision on 16-bit RGB pngs
> 
> BUG=skia:
> 
> CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
> 
> Change-Id: I89dfef3b4887b9c4895c17309933883ab90ffa4d
> Reviewed-on: https://skia-review.googlesource.com/6260
> Reviewed-by: Mike Reed <reed@google.com>
> Reviewed-by: Leon Scroggins <scroggo@google.com>
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Commit-Queue: Matt Sarett <msarett@google.com>
> 

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

Change-Id: I47579c20af033a75883e2b35567cb9c690ce54b0
Reviewed-on: https://skia-review.googlesource.com/6975
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
2017-01-12 21:03:28 +00:00
Mike Reed
9e937af9bd impl clipping for GDI raster-handle
BUG=skia:

Change-Id: I66bbcd80853662d982b80e7e504f2b5ccedc055c
Reviewed-on: https://skia-review.googlesource.com/6967
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-01-12 20:21:39 +00:00
Mike Klein
b621a35b43 drop depot_tools dependency in bin/fetch-gn
... and copy gn to bin/ when done to make it easy to find.

Change-Id: I1ec405b4c45efb828626ff7d904a417f69b39cb2
Reviewed-on: https://skia-review.googlesource.com/6962
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-01-12 19:54:50 +00:00
Hal Canary
3d97a0e2ad rm -r {include,src}/animator
Change-Id: Ibfb57dfa7fd317fb0737096cc7c1bbcb644421b5
Reviewed-on: https://skia-review.googlesource.com/6957
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-01-12 19:52:18 +00:00
Hal Canary
5aedd6d5a3 cleanup after 95e3c05
Change-Id: Ifd194fd009196b8bee2dd83328bbe698586d72f4
Reviewed-on: https://skia-review.googlesource.com/6965
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2017-01-12 19:49:46 +00:00
Matt Sarett
444c1bd38a Fix tool with swapped fC, fE (SkColorSpaceTransferFn)
I missed updating this tool.

BUG=skia:

Change-Id: If5c79f0c41dd829ce8f952106660100ce4accca0
Reviewed-on: https://skia-review.googlesource.com/6963
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-01-12 19:32:06 +00:00
Matt Sarett
bb2339da39 Use RasterPipeline to support full precision on 16-bit RGBA pngs
TODO: Support more precision on 16-bit RGB pngs

BUG=skia:

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

Change-Id: I89dfef3b4887b9c4895c17309933883ab90ffa4d
Reviewed-on: https://skia-review.googlesource.com/6260
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-01-12 19:09:49 +00:00
Yuqian Li
90ee03b0d1 Revert "Implement Analytic AA for General Paths (with Guard against Chrome)"
This reverts commit 89a0e72287.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Implement Analytic AA for General Paths (with Guard against Chrome)
> 
> I've set up a SK_SUPPORT_LEGACY_AAA flag to guard against Chromium layout tests. I also set that flag in this CL so theoretically this CL won't trigger any GM changes. I'll use this to verify my guard, and remove that flag and actually enables concave AAA in a future CL.
> 
> When enabled, for most simple concave paths (e.g., rectangle stroke, rrect stroke, sawtooth, stars...), the Analytic AA achieves 1.3x-2x speedup, and they look much prettier. And they probably are the majority in our use cases by number. But they probably are not the majority by time cost; a single complicated path may cost 10x-100x more time to render than a rectangle stroke... For those complicated paths, we fall back to supersampling by default as we're likely to be 1.1-1.2x slower and the quality improvement is not visually significant. However, one can use gSkForceAnalyticAA to disable that fallback.
> 
> BUG=skia:
> 
> Change-Id: If9549a3acc4a187cfaf7eb51890c148da3083d31
> Reviewed-on: https://skia-review.googlesource.com/6091
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Yuqian Li <liyuqian@google.com>
> 

TBR=caryclark@google.com,liyuqian@google.com,reed@google.com
BUG=skia:
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I13c05aaa1bcb14956bd0fe01bb404e41be75af22
Reviewed-on: https://skia-review.googlesource.com/6961
Commit-Queue: Yuqian Li <liyuqian@google.com>
Reviewed-by: Yuqian Li <liyuqian@google.com>
2017-01-12 18:13:02 +00:00
Florin Malita
a022e2d834 Fix SkImageFilterCache race
BUG=chromium:668937
R=reed@google.com,robertphillips@google.com

Change-Id: I72ceaf1d88946c277a38f32014640e01ae9cbded
Reviewed-on: https://skia-review.googlesource.com/6954
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-01-12 17:56:13 +00:00
Yuqian Li
89a0e72287 Implement Analytic AA for General Paths (with Guard against Chrome)
I've set up a SK_SUPPORT_LEGACY_AAA flag to guard against Chromium layout tests. I also set that flag in this CL so theoretically this CL won't trigger any GM changes. I'll use this to verify my guard, and remove that flag and actually enables concave AAA in a future CL.

When enabled, for most simple concave paths (e.g., rectangle stroke, rrect stroke, sawtooth, stars...), the Analytic AA achieves 1.3x-2x speedup, and they look much prettier. And they probably are the majority in our use cases by number. But they probably are not the majority by time cost; a single complicated path may cost 10x-100x more time to render than a rectangle stroke... For those complicated paths, we fall back to supersampling by default as we're likely to be 1.1-1.2x slower and the quality improvement is not visually significant. However, one can use gSkForceAnalyticAA to disable that fallback.

BUG=skia:

Change-Id: If9549a3acc4a187cfaf7eb51890c148da3083d31
Reviewed-on: https://skia-review.googlesource.com/6091
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
2017-01-12 17:17:32 +00:00
Mike Reed
108f55ed5d fix clipping in rasterhandleallocator
BUG=skia:

Change-Id: Ia24c5ae191fd823095cd0c75993cfd0208c98869
Reviewed-on: https://skia-review.googlesource.com/6952
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-01-12 17:05:15 +00:00
Mike Reed
693fdbd6b8 refFoo variant for getters that naturally have a sk_sp
BUG=skia:

Change-Id: I13afa1b81e8a72d93e45fb4d37228be196b0f388
Reviewed-on: https://skia-review.googlesource.com/6923
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-01-12 16:38:34 +00:00
Mike Klein
a005acc036 skia_android_serial = "auto"
Handy if you only have one device plugged in at a time.

Note that when used, this makes GN treat all devices' serial numbers as "auto", so it won't re-push if you swap devices until you change the binary that's being pushed.

Change-Id: I1f72133d6d8c4b5569734f191d414088e0b41f06
Reviewed-on: https://skia-review.googlesource.com/6948
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
2017-01-12 16:30:17 +00:00
Brian Osman
78f20e0e97 Cleanup GrPixelConfig helper functions
Remove unused functions, and convert another to switch style.

BUG=skia:

Change-Id: I93edbece54f147d868801bb008e6f935a8cb997f
Reviewed-on: https://skia-review.googlesource.com/6947
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-01-12 16:22:06 +00:00
Jim Van Verth
062990bc7a Fix perf regression with SDF paths
BUG=skia:6113,chromium:677889

Change-Id: I13d012a92e4d0371138f5ed4b92c7850f9b773a5
Reviewed-on: https://skia-review.googlesource.com/6945
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2017-01-12 16:10:49 +00:00
Mike Klein
d32303e727 disable runtime detected AVX2 raster pipelines
It's proving too difficult to keep on top of all the ways we might cause ODR violations that crash Chrome.  I'd rather focus on other ways of running the pipelines that won't have that particular problem.  Our -Fast bots will keep testing and benchmarking AVX2 raster pipelines.

BUG=chromium:679147,chromium:654213,chromium:664864,chromium:666707,etc.

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

Change-Id: I35ba8f5f4303107237fd78a6ce442d7c26e5fbef
Reviewed-on: https://skia-review.googlesource.com/6827
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-01-12 15:45:38 +00:00
Derek Sollenberger
4a0a943d57 Remove defunct include/images directory from GN.
BUG=skia:6065

Change-Id: I332581cca684c4918dc87434509744b8bf4f5ed8
Reviewed-on: https://skia-review.googlesource.com/6944
Commit-Queue: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-01-12 15:02:14 +00:00