platform/upstream/libSkiaSharp.git
7 years agoReland https://skia-review.googlesource.com/c/6091/
Yuqian Li [Fri, 13 Jan 2017 15:13:13 +0000 (10:13 -0500)]
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>

7 years agogclient-free download and build instructions.
Mike Klein [Fri, 13 Jan 2017 14:05:46 +0000 (09:05 -0500)]
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>
7 years agoRevert "Hide SkCanvas getDevice() & getTopDevice()}"
Florin Malita [Fri, 13 Jan 2017 15:13:09 +0000 (15:13 +0000)]
Revert "Hide SkCanvas getDevice() & getTopDevice()}"

This reverts commit 76467a11a0aa4ba15f0f2e3ee078ba9b6ecbaa91.

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>
7 years agoRemove spurious checks for sRGB float data
Brian Osman [Thu, 12 Jan 2017 22:18:22 +0000 (17:18 -0500)]
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>
7 years agoUnify ICC support for gray jpegs and gray pngs
Matt Sarett [Thu, 12 Jan 2017 23:36:38 +0000 (18:36 -0500)]
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>

7 years agoHide SkCanvas getDevice() & getTopDevice()}
Florin Malita [Thu, 12 Jan 2017 21:01:30 +0000 (16:01 -0500)]
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>

7 years agoOptimize SkBlend by using NEON intrinsics
Joel Liang [Wed, 11 Jan 2017 06:38:57 +0000 (14:38 +0800)]
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>

7 years agoAttempt 3: SkRasterPipelineBlitter: support A8
Mike Klein [Fri, 13 Jan 2017 12:59:23 +0000 (07:59 -0500)]
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 86d55b312a2649d80890ccf75f24571ada0265f1.

Change-Id: I2d495600ca9d3a0f49c2e02fbaaae349cefac3a1
Reviewed-on: https://skia-review.googlesource.com/6985
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoRevert "Reland https://skia-review.googlesource.com/c/6091/"
Yuqian Li [Thu, 12 Jan 2017 23:37:38 +0000 (23:37 +0000)]
Revert "Reland https://skia-review.googlesource.com/c/6091/"

This reverts commit b46fff60bc82fe6f0c64b2241d854a121f7cb5f9.

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>
7 years agoUse RasterPipeline to support full precision on 16-bit RGBA pngs
Matt Sarett [Thu, 12 Jan 2017 23:34:29 +0000 (18:34 -0500)]
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>

7 years agoAdd support for drawImageLattice in SKIA debugger
Stan Iliev [Thu, 12 Jan 2017 21:20:50 +0000 (16:20 -0500)]
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>
7 years agoReland https://skia-review.googlesource.com/c/6091/
Yuqian Li [Thu, 12 Jan 2017 20:35:15 +0000 (15:35 -0500)]
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>

7 years agoRevert "Use RasterPipeline to support full precision on 16-bit RGBA pngs"
Matt Sarett [Thu, 12 Jan 2017 21:03:17 +0000 (21:03 +0000)]
Revert "Use RasterPipeline to support full precision on 16-bit RGBA pngs"

This reverts commit bb2339da39ab3ee59121acd911920dafcd4a2f72.

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>
7 years agoimpl clipping for GDI raster-handle
Mike Reed [Thu, 12 Jan 2017 19:18:39 +0000 (14:18 -0500)]
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>

7 years agodrop depot_tools dependency in bin/fetch-gn
Mike Klein [Thu, 12 Jan 2017 18:20:38 +0000 (13:20 -0500)]
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>

7 years agorm -r {include,src}/animator
Hal Canary [Thu, 12 Jan 2017 17:22:47 +0000 (12:22 -0500)]
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>

7 years agocleanup after 95e3c05
Hal Canary [Thu, 12 Jan 2017 18:47:57 +0000 (13:47 -0500)]
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>

7 years agoFix tool with swapped fC, fE (SkColorSpaceTransferFn)
Matt Sarett [Thu, 12 Jan 2017 18:39:04 +0000 (13:39 -0500)]
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>

7 years agoUse RasterPipeline to support full precision on 16-bit RGBA pngs
Matt Sarett [Thu, 12 Jan 2017 18:13:48 +0000 (13:13 -0500)]
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>

7 years agoRevert "Implement Analytic AA for General Paths (with Guard against Chrome)"
Yuqian Li [Thu, 12 Jan 2017 18:12:46 +0000 (18:12 +0000)]
Revert "Implement Analytic AA for General Paths (with Guard against Chrome)"

This reverts commit 89a0e72287e991cfa2f860f92fad545ca59defe1.

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>
7 years agoFix SkImageFilterCache race
Florin Malita [Thu, 12 Jan 2017 17:06:14 +0000 (12:06 -0500)]
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>

7 years agoImplement Analytic AA for General Paths (with Guard against Chrome)
Yuqian Li [Wed, 11 Jan 2017 15:58:31 +0000 (10:58 -0500)]
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>

7 years agofix clipping in rasterhandleallocator
Mike Reed [Thu, 12 Jan 2017 16:28:01 +0000 (11:28 -0500)]
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>

7 years agorefFoo variant for getters that naturally have a sk_sp
Mike Reed [Thu, 12 Jan 2017 15:13:40 +0000 (10:13 -0500)]
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>

7 years agoskia_android_serial = "auto"
Mike Klein [Thu, 12 Jan 2017 15:48:19 +0000 (10:48 -0500)]
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>
7 years agoCleanup GrPixelConfig helper functions
Brian Osman [Thu, 12 Jan 2017 15:28:01 +0000 (10:28 -0500)]
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>

7 years agoFix perf regression with SDF paths
Jim Van Verth [Thu, 12 Jan 2017 15:00:16 +0000 (10:00 -0500)]
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>

7 years agodisable runtime detected AVX2 raster pipelines
Mike Klein [Tue, 10 Jan 2017 13:42:16 +0000 (08:42 -0500)]
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>
7 years agoRemove defunct include/images directory from GN.
Derek Sollenberger [Thu, 12 Jan 2017 14:32:37 +0000 (09:32 -0500)]
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>
7 years agoRemove second version of SkImageInfo2GrPixelConfig
Brian Osman [Wed, 11 Jan 2017 21:58:42 +0000 (16:58 -0500)]
Remove second version of SkImageInfo2GrPixelConfig

Alpha type is not (and never will be) part of pixel config, so the logic
around that was unnecessary. (Also, we already sanitize color type and
alpha type before making a new device at a higher level).

With that out of the way, we can easily supply a full info at the two
call-sites that were using the other version.

BUG=skia:

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

7 years agoRemove kIndex_8_GrPixelConfig
Brian Osman [Wed, 11 Jan 2017 21:57:15 +0000 (16:57 -0500)]
Remove kIndex_8_GrPixelConfig

It's been disabled for a long time (GPUs don't support it, and it actually
caused performance regression in testing).

BUG=skia:4333

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

7 years agoMove recipe expectations into example.py recipes inside of modules
Eric Boren [Thu, 12 Jan 2017 13:46:20 +0000 (08:46 -0500)]
Move recipe expectations into example.py recipes inside of modules

Each top-level recipe still needs one test and expectation file.

BUG=skia:6070

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

7 years agoMove most recipes into modules
Eric Boren [Thu, 12 Jan 2017 13:15:38 +0000 (08:15 -0500)]
Move most recipes into modules

The modules will eventually move into a shared repository.

BUG=skia:6070

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

7 years agoonly copy NDK binaries when using NDK in our standalone builds
Mike Klein [Thu, 12 Jan 2017 13:07:23 +0000 (08:07 -0500)]
only copy NDK binaries when using NDK in our standalone builds

  i.e. not when generating Android.bp (and in the future, not in Clank builds)

BUG=skia:6065

Change-Id: I52bdd5f01deb5e5b4d9e72bec197a82dc887be88
Reviewed-on: https://skia-review.googlesource.com/6941
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoGrTessellator: fix artifact with exactly-1-px-wide edges.
Stephen White [Wed, 11 Jan 2017 21:19:26 +0000 (16:19 -0500)]
GrTessellator: fix artifact with exactly-1-px-wide edges.

When path features are exactly a pixel wide, the extruded inner edges
can become collinear and then be removed, since their winding is
zero. We need these edges to be preserved through triangulation,
otherwise opaque portions of the geometry can become transparent.

Since the simplify() pass can handle zero-winding edges just fine, the
the fix is to simply not remove them.

In addition, this changes refactors out disconnect() from all the calls
to remove_edge_above()/remove_edge_below(). It also renames the remaining
function erase_edge() (since it's now unconditional).

Add a new test to a new "thinconcavepaths" GM.

BUG=680260
NOTRY=true

Change-Id: I1d3a436c95a01c4d4ef5dc05503de4312677f65d
Reviewed-on: https://skia-review.googlesource.com/6902
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephan White <senorblanco@chromium.org>

7 years agoadd win subclass of raster-allocator
Mike Reed [Thu, 12 Jan 2017 02:18:25 +0000 (21:18 -0500)]
add win subclass of raster-allocator

BUG=skia:

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

7 years agoRevert "Introduce SkArenaAlloc - should be fast for POD types and RAII for types...
Herb Derby [Wed, 11 Jan 2017 21:16:11 +0000 (21:16 +0000)]
Revert "Introduce SkArenaAlloc - should be fast for POD types and RAII for types with dtors."

This reverts commit 6ff51aedda6f3b4873c292d7e03e47ad656543f8.

Reason for revert: breaks win2k8 and PDFium

Change-Id: Ib1e2db8e523d5d321836ce00e3773def3db8be2f
Reviewed-on: https://skia-review.googlesource.com/6898
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
7 years agoSkUTF8_CountUnichars(s,l) and SkUTF8_NextUnichar(s,l) now safe.
Hal Canary [Wed, 11 Jan 2017 20:53:25 +0000 (15:53 -0500)]
SkUTF8_CountUnichars(s,l) and SkUTF8_NextUnichar(s,l) now safe.

Theory:  We will accept blobs of data as utf-8 text without validation,
but when it comes time to process it: count code poits or convert to
code points, be careful to check for errors.

TODO: SkTypeface::charsToGlyphs() needs to take a length.

Change-Id: Id8110ab43dbffce96faffdda1e0bdaa39cad40e4
Reviewed-on: https://skia-review.googlesource.com/6849
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Herb Derby <herb@google.com>
7 years agoFix undefined GrIORef test method on Chrome win bot
Brian Salomon [Wed, 11 Jan 2017 20:24:47 +0000 (15:24 -0500)]
Fix undefined GrIORef test method on Chrome win bot

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

7 years agoIntroduce SkArenaAlloc - should be fast for POD types and RAII for types with dtors.
Herb Derby [Wed, 11 Jan 2017 18:43:47 +0000 (13:43 -0500)]
Introduce SkArenaAlloc - should be fast for POD types and RAII for types with dtors.

- Implementation.
- Use in SkLinearPipeline.

TBR=mtklein@google.com
Change-Id: Ia8efd09b2f3139a57182889ba84d1610eae92749
Reviewed-on: https://skia-review.googlesource.com/6352
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>

7 years agoMore fixes for distance field paths
Jim Van Verth [Wed, 11 Jan 2017 19:17:00 +0000 (14:17 -0500)]
More fixes for distance field paths

Disables use of SDFs for very small paths (because of blurring) and
adds a border of 1 pixel in device space to handle antialiasing.

BUG=chromium:677889

Change-Id: Icd2f7e80323b1255f8de52b97360e9a2d995c765
Reviewed-on: https://skia-review.googlesource.com/6895
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>

7 years agoMake GrPaints move their GrProcessor ownership into GrPipelineBuilder.
Brian Salomon [Wed, 11 Jan 2017 18:42:54 +0000 (13:42 -0500)]
Make GrPaints move their GrProcessor ownership into GrPipelineBuilder.

This makes GrPaints usable only once. In some places we must make copies in order to issue draws with the same paint state.

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

7 years agomove SkTRegister.h into tools
Mike Reed [Wed, 11 Jan 2017 18:58:55 +0000 (13:58 -0500)]
move SkTRegister.h into tools

BUG=skia:

Change-Id: Ie7d4fac3024b361a281f456fec2b3a837e2bfe43
Reviewed-on: https://skia-review.googlesource.com/6881
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoRemove SK_LEGACY_FONTMGR_FACTORY.
Ben Wagner [Wed, 11 Jan 2017 18:54:39 +0000 (13:54 -0500)]
Remove SK_LEGACY_FONTMGR_FACTORY.

SkFontMgr factories now return sk_sp and the legacy factories are no
longer used and can be removed.

BUG=skia:5077

Change-Id: Ieaff8555b297d1db157f8b78cdd6e7d07a3b5490
Reviewed-on: https://skia-review.googlesource.com/6894
Commit-Queue: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoremove dead file: PathOpsSkpClipTest.cpp
Mike Reed [Wed, 11 Jan 2017 18:53:17 +0000 (13:53 -0500)]
remove dead file: PathOpsSkpClipTest.cpp

BUG=skia:

Change-Id: If11dd014b14aa902082f93bf678b9d0f1b2e1c34
Reviewed-on: https://skia-review.googlesource.com/6893
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoSkSplicer: start on Windows support
Mike Klein [Wed, 11 Jan 2017 18:41:30 +0000 (13:41 -0500)]
SkSplicer: start on Windows support

 should just be missing copy_to_executable_mem() / cleanup_executable_mem()

Change-Id: I47d34d4b57a40c07120cca7dc03f6ae22ecbe910
Reviewed-on: https://skia-review.googlesource.com/6854
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
7 years agoSkTestTypeface: correct encoding
Hal Canary [Wed, 11 Jan 2017 18:26:43 +0000 (13:26 -0500)]
SkTestTypeface: correct encoding

Change-Id: I6ef875fc44278b873989d323dd26f6ed26b68f28
Reviewed-on: https://skia-review.googlesource.com/6889
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
7 years agoSkTypes.h : move SkAutoMalloc into SkAutoMalloc.h
Hal Canary [Wed, 11 Jan 2017 17:44:43 +0000 (12:44 -0500)]
SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h

  * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr).

  * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h

  * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);"

Revert "Revert 'SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h'"
This reverts commit c456b73fef9589bbdc5eb83eaa83e53c357bb3da.

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

7 years agoRevert "More fixes for distance field paths"
Jim Van Verth [Wed, 11 Jan 2017 18:35:02 +0000 (18:35 +0000)]
Revert "More fixes for distance field paths"

This reverts commit d081ff314f07104adacaadc3d0f8f13dc741f016.

Reason for revert: Failing unit tests.

Original change's description:
> More fixes for distance field paths
>
> Disables use of SDFs for very small paths (because of blurring) and
> adds a border of 1 pixel in device space to handle antialiasing.
>
> BUG=chromium:677889
>
> Change-Id: I81e49477c943d41523fd836e55abd696a985491f
> Reviewed-on: https://skia-review.googlesource.com/6832
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
>

TBR=jvanverth@google.com,bsalomon@google.com,robertphillips@google.com,reviews@skia.org
BUG=chromium:677889
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I4a6a698fa2e9e58c1c98a5a89f54bed724527951
Reviewed-on: https://skia-review.googlesource.com/6890
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
7 years agoMake SkColorToHSV and SkHSVToColor "perfect" inverses
Leon Scroggins III [Wed, 11 Jan 2017 17:59:43 +0000 (12:59 -0500)]
Make SkColorToHSV and SkHSVToColor "perfect" inverses

For all possible opaque SkColors, make converting to HSV and back return
the original SkColor.

In SkHSVToColor, store values as normalized floats (instead of
converting to byte values) as long as possible.

Add a test that cycles through all opaque SkColors and verifies correct
conversion.

BUG=b/33737498

Change-Id: I7ff61a999a271565a9ffe82ae3c9676fc49d67e3
Reviewed-on: https://skia-review.googlesource.com/6720
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
7 years agoMore fixes for distance field paths
Jim Van Verth [Wed, 11 Jan 2017 17:21:43 +0000 (12:21 -0500)]
More fixes for distance field paths

Disables use of SDFs for very small paths (because of blurring) and
adds a border of 1 pixel in device space to handle antialiasing.

BUG=chromium:677889

Change-Id: I81e49477c943d41523fd836e55abd696a985491f
Reviewed-on: https://skia-review.googlesource.com/6832
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoRevert "SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h"
Kevin Lubick [Wed, 11 Jan 2017 17:21:57 +0000 (17:21 +0000)]
Revert "SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h"

This reverts commit a5494f117086d712855e4b6289c58c92d1549bcf.

Reason for revert: Broke Google3

Original change's description:
> SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h
>
>   * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr).
>
>   * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h
>
>   * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);"
>
> Change-Id: Idacd86ca09e22bf092422228599ae0d9bedded88
> Reviewed-on: https://skia-review.googlesource.com/4543
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Hal Canary <halcanary@google.com>
>

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

Change-Id: Ie8bd176121c3ee83c110d66c0d0ac65e09bfc9c5
Reviewed-on: https://skia-review.googlesource.com/6884
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
7 years agoAdd test for processor->resource ref/io counts
Brian Salomon [Wed, 11 Jan 2017 15:32:34 +0000 (10:32 -0500)]
Add test for processor->resource ref/io counts

Change-Id: I63a8cb9f1564bfc15ef98121b77946a647c79f32
Reviewed-on: https://skia-review.googlesource.com/6814
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
7 years agoSkTypes.h : move SkAutoMalloc into SkAutoMalloc.h
Hal Canary [Tue, 10 Jan 2017 20:02:26 +0000 (15:02 -0500)]
SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h

  * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr).

  * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h

  * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);"

Change-Id: Idacd86ca09e22bf092422228599ae0d9bedded88
Reviewed-on: https://skia-review.googlesource.com/4543
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

7 years agoGet latest ANGLE as of January 6, 2017
Brian Osman [Tue, 10 Jan 2017 18:31:33 +0000 (13:31 -0500)]
Get latest ANGLE as of January 6, 2017

Also add ANGLE ES3 predefined configs.

BUG=skia:
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Win10-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE

Change-Id: Ib7394afa961da1afe91c6dfefe08528273d3087c
Reviewed-on: https://skia-review.googlesource.com/6698
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoAdd readPixels() tests for generator backed images
Matt Sarett [Tue, 10 Jan 2017 22:41:53 +0000 (17:41 -0500)]
Add readPixels() tests for generator backed images

Good news:
Everything seems to work as it is supposed to.  That's why this
CL is just tests.

Bad news:
Picture is a bit strange in that the caching behavior may affect
how the output looks.  Ex: If we choose to cache, we will first
draw into the picture's colorSpace and then convert that to the
dstColorSpace.  If we choose not to cache, we will draw directly
into the dstColorSpace.
And then untagged pictures seem like they really shouldn't work
very well...  We are caching a legacy draw and then drawing that
into the dstColorSpace?  Maybe this isn't the most critical
thing to think about right now though, given Florin's work.

Remaining TODOs:
Color space support for gpu-backed images.
I still plan to clarify conversions that are allowed vs. not
allowed and share that code between all SkImages.

BUG=skia:6021

Change-Id: I9557ca1c00ff6854848fe59c3a67abd2af91bb46
Reviewed-on: https://skia-review.googlesource.com/6853
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agoFix overwriting of config flags in a few cases
Brian Osman [Tue, 10 Jan 2017 21:53:58 +0000 (16:53 -0500)]
Fix overwriting of config flags in a few cases

For all of these configs, we were or'ing in the texel buffer flag, and
then setting the flags to textureable. We currently only use texel buffers
for RGBA_Float buffers, so this didn't make any difference, but I spotted
it while making other changes.

BUG=skia:

Change-Id: I76c21881b7c82c5c0561e19686ddcc62f9cca835
Reviewed-on: https://skia-review.googlesource.com/6851
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoRevert "Revert "Improve quad edges' smoothness in non-AA cases""
Yuqian Li [Wed, 11 Jan 2017 13:55:49 +0000 (13:55 +0000)]
Revert "Revert "Improve quad edges' smoothness in non-AA cases""

This reverts commit 1e74cad9b4ed8079433d4e62ab3198d97436f5ec.

Reason for revert: the guard flag has now been confirmed to be landed on chromium/src. We should now be able to pass the layout tests.

Original change's description:
> Revert "Improve quad edges' smoothness in non-AA cases"
>
> This reverts commit d4ed326d6f3704995b0e91292bf2c87e9d36bb14.
>
> Reason for revert: reverting temporarily to get us rolling into Chrome again.
>
> Must be this CL right?
> https://storage.googleapis.com/chromium-layout-test-archives/linux_trusty_blink_rel/3364/layout-test-results/results.html
>
> Original change's description:
> > Improve quad edges' smoothness in non-AA cases
> >
> > Previously, non-AA quad edges only have an accuracy about 1/2 pixel
> > (while the AA quad edges have an accuracy about 1/8 pixel).  Now, we
> > increase non-AA quad edges' accuracy to 1/8 pixel as well.
> >
> > The difference is very significant for rotating non-AA filled circles.
> > For example, run `./out/Debug/SampleApp --slide GM:fillcircle` with AA
> > turned off (by pressing b).
> >
> > The benchmark added reveals that increasing quad accuracy from 1/2 to
> > 1/8 doesn't affect the performance significantly. The following is the
> > 1/2-accuracy performance versus 1/8-accuracy performance:
> >
> > curr/maxrss     loops   min     median  mean    max     stddev  samples
> > config  bench
> > 7/17  MB        19      2.43µs  2.57µs  2.81µs  10.5µs  22%     16119
> > 8888    path_fill_big_nonaacircle
> > 7/17  MB        17      1.38µs  1.42µs  1.52µs  13µs    20%     21409
> > 8888    path_fill_small_nonaacircle
> >
> > curr/maxrss     loops   min     median  mean    max     stddev  samples
> > config  bench
> > 7/17  MB        71      2.52µs  2.59µs  2.79µs  7.67µs  19%     7557
> > 8888    path_fill_big_nonaacircle
> > 7/17  MB        64      1.45µs  1.49µs  1.51µs  2.39µs  5%      12704
> > 8888    path_fill_small_nonaacircle
> >
> >
> > BUG=skia:
> >
> > Change-Id: I3482098aeafcc6f2ec9aa3382977c0dc1b650964
> > Reviewed-on: https://skia-review.googlesource.com/6699
> > Reviewed-by: Mike Reed <reed@google.com>
> > Commit-Queue: Yuqian Li <liyuqian@google.com>
> >
>
> TBR=caryclark@google.com,liyuqian@google.com,reed@google.com,djsollen@google.com,bungeman@google.com,reviews@skia.org,fmalita@chromium.org
> BUG=skia:
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Change-Id: I5bc4596ab506f6f61ac2da91a07cf51d61114f31
> Reviewed-on: https://skia-review.googlesource.com/6829
> Commit-Queue: Mike Klein <mtklein@google.com>
> Reviewed-by: Mike Klein <mtklein@google.com>
>

TBR=djsollen@google.com,mtklein@google.com,bungeman@google.com,reviews@skia.org,caryclark@google.com,fmalita@chromium.org,liyuqian@google.com,reed@google.com
BUG=skia:
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I0ec2ea8dc0c6ad0ebdcb48878fb301c32443a09e
Reviewed-on: https://skia-review.googlesource.com/6858
Commit-Queue: Yuqian Li <liyuqian@google.com>
Reviewed-by: Yuqian Li <liyuqian@google.com>
7 years agoRoll recipe DEPS
Eric Boren [Wed, 11 Jan 2017 12:34:53 +0000 (07:34 -0500)]
Roll recipe DEPS

BUG=skia:

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

7 years agomove SkDraw.h to core
Mike Reed [Tue, 10 Jan 2017 19:57:59 +0000 (14:57 -0500)]
move SkDraw.h to core

BUG=skia:

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

7 years agopretty up some SkSplicer code
Mike Klein [Tue, 10 Jan 2017 21:11:15 +0000 (16:11 -0500)]
pretty up some SkSplicer code

  - build_stages.py uses gobjdump for both architectures, minor formatting changes
  - let byte arrays be written inline in splice()

Change-Id: I84bd47c18e5ae0b34b35f8c2f0a329fb1ea58f60
Reviewed-on: https://skia-review.googlesource.com/6833
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
7 years agoInvalidate icache in copy_to_executable_mem()
Mike Klein [Tue, 10 Jan 2017 20:22:36 +0000 (15:22 -0500)]
Invalidate icache in copy_to_executable_mem()

This should be a no-op on x86 (unified icache and dcache), but is required on
ARM because the icache and dcache are separate.

The Pixel C bots are crashing at head, and so is my local Pixel C, but not
after this CL.  Interestingly, my Pixel not-C (phone) has always been fine.
I wonder if it has a unifed cache?

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Android-Clang-PixelC-CPU-TegraX1-arm64-Release-Android

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

7 years agoAdd Gray8 pixel config
Brian Osman [Tue, 10 Jan 2017 19:20:02 +0000 (14:20 -0500)]
Add Gray8 pixel config

This is still just linear (non-sRGB), but adding sRGB will
be the next step. I've verified that this is really making
R8 textures when uploading Gray8 bitmaps. Tests pass, and
the all_bitmap_configs GM still renders correctly (unlike
when we just mapped Gray8 to Alpha8).

This adds another pixel config, which could grow our cache
footprint, but the benefits of not using 4bpp for 1bpp data
should outweigh that?

Re-land of https://skia-review.googlesource.com/c/6817/,
with fixes for Vulkan.

BUG=skia:6110

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

7 years agoSkSplicer: no need to set_k() manually.
Mike Klein [Tue, 10 Jan 2017 19:41:19 +0000 (14:41 -0500)]
SkSplicer: no need to set_k() manually.

set_k() is simulating the effect of loading a pointer constant into the register used to pass the 4th function argument.  An easier way to do this is to pass that pointer constant as the 4th function argument... duh.

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

7 years agodisable splicer on MSAN bot
Mike Klein [Tue, 10 Jan 2017 19:31:13 +0000 (14:31 -0500)]
disable splicer on MSAN bot

Not sure what to do about this long term.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN

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

7 years agoRemove last of SK_SUPPORT_LEGACY_IMAGE_ENCODER_CLASS
Hal Canary [Tue, 10 Jan 2017 18:58:24 +0000 (13:58 -0500)]
Remove last of SK_SUPPORT_LEGACY_IMAGE_ENCODER_CLASS

Approval from https://review.skia.org/5006
TBR=reed@google.com
Change-Id: Icdd54be420260ecd2f94f2f1fa76caba34e6a50e
Reviewed-on: https://skia-review.googlesource.com/6840
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

7 years agoSkSplicer: fix aarch64 jump offset, turn on testing on aarch64 Android bots
Mike Klein [Tue, 10 Jan 2017 19:09:24 +0000 (14:09 -0500)]
SkSplicer: fix aarch64 jump offset, turn on testing on aarch64 Android bots

I also updated the dump feature to work with aarch64, and included comments on how to disassemble an aarch64 dump.

Looking at an aarch64 dump made it immediately obvious that the jump offset was off by 1.

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

7 years agoSkSplicer: test and fix loop logic
Mike Klein [Tue, 10 Jan 2017 18:42:51 +0000 (13:42 -0500)]
SkSplicer: test and fix loop logic

The new test would fail without the the change in SkSplicer.cpp to call fSpliced(x,x+body) instead of fSpliced(x,body).  The rest of the changes are cosmetic, mostly renaming n to limit.

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

7 years agoRevert "Add Gray8 pixel config"
Brian Osman [Tue, 10 Jan 2017 18:47:27 +0000 (18:47 +0000)]
Revert "Add Gray8 pixel config"

This reverts commit f2956459f707de596dcb2c79a7ee1fa62d599c0d.

Reason for revert: GM and image failures on some bots (rendering red, not gray).

Original change's description:
> Add Gray8 pixel config
>
> This is still just linear (non-sRGB), but adding sRGB will
> be the next step. I've verified that this is really making
> R8 textures when uploading Gray8 bitmaps. Tests pass, and
> the all_bitmap_configs GM still renders correctly (unlike
> when we just mapped Gray8 to Alpha8).
>
> This adds another pixel config, which could grow our cache
> footprint, but the benefits of not using 4bpp for 1bpp data
> should outweigh that?
>
> BUG=skia:6110
>
> Change-Id: I4fc4c2479fc25f1d278e174a9bb5b542a0cb184c
> Reviewed-on: https://skia-review.googlesource.com/6817
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
>

TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com,reviews@skia.org
BUG=skia:6110
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I95a4fc0450a569d5791f6bceb7fae61c7e5eba61
Reviewed-on: https://skia-review.googlesource.com/6838
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>

7 years agoTest SkSplicer on x86-64 bots, except Windows.
Mike Klein [Tue, 10 Jan 2017 17:06:21 +0000 (12:06 -0500)]
Test SkSplicer on x86-64 bots, except Windows.

Will follow up later with (is_android && target_cpu == "arm64").  Just being cautious.

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

7 years agoStart including 'winrt' in Windows toolchain
Brian Osman [Tue, 10 Jan 2017 15:38:23 +0000 (10:38 -0500)]
Start including 'winrt' in Windows toolchain

Recent versions of ANGLE require this. See:

  https://skia-review.googlesource.com/c/6698/

This also updates us to the latest version of the Windows SDK,
2015 Update 3 (Windows 10 SDK).

BUG=skia:
CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Debug-GDI,Test-Win10-MSVC-ShuttleA-GPU-GTX660-x86_64-Debug-Vulkan,Test-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Release

Change-Id: I42c8cabc87717f8695763f2c5573b27ab8ab65be
Reviewed-on: https://skia-review.googlesource.com/6801
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>

7 years agoRespect SkColorSpace in SkPNGImageEncoder
Matt Sarett [Tue, 10 Jan 2017 16:28:54 +0000 (11:28 -0500)]
Respect SkColorSpace in SkPNGImageEncoder

This only changes behavior when the input SkBitmap/SkPixmap is
tagged with a non-null SkColorSpace.  Android tags their bitmaps
as sRGB when linear blending is enabled.  So this only changes
behavior in Android when linear blending is turned on.
*If linear blending is turned on, this will do a color correct
 encode (which is the desired behavior).
*If linear blending is turned off, this will do a legacy encode.

TODO: Add support for F16.
TODO: Add color space support to WEBP.
TODO: Tag encoded images with ICC profiles (when it makes sense).

BUG=skia:

Change-Id: Idd8a2836371d24a453d953e6fe2e76a87751be96
Reviewed-on: https://skia-review.googlesource.com/6498
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agoClean up unused SK_SUPPORT_LEGACY_IMAGE_ENCODER_CLASS code
Hal Canary [Tue, 10 Jan 2017 17:12:45 +0000 (12:12 -0500)]
Clean up unused SK_SUPPORT_LEGACY_IMAGE_ENCODER_CLASS code

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

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

7 years agosupport external raster handles
Mike Reed [Tue, 10 Jan 2017 16:58:39 +0000 (11:58 -0500)]
support external raster handles

draft CL for chrome: https://codereview.chromium.org/2618323005/

BUG=skia:

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

7 years agoremove xbyak experiment
Mike Klein [Tue, 10 Jan 2017 14:24:56 +0000 (09:24 -0500)]
remove xbyak experiment

SkSplicer is better.

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

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

7 years agoMake SkImage_Base::onReadPixels() pure virtual
Matt Sarett [Tue, 10 Jan 2017 14:29:04 +0000 (09:29 -0500)]
Make SkImage_Base::onReadPixels() pure virtual

BUG=skia:

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

7 years agoRemove SkUseTestFontConfigFile.
Ben Wagner [Mon, 9 Jan 2017 21:23:44 +0000 (16:23 -0500)]
Remove SkUseTestFontConfigFile.

This method and its associated globals are no longer used by any user
and can now be removed.

BUG=skia:2817

Change-Id: Ia627e2494f568a733999b980aec9284467d2640d
Reviewed-on: https://skia-review.googlesource.com/6821
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>

7 years agoAdd Gray8 pixel config
Brian Osman [Mon, 9 Jan 2017 20:32:57 +0000 (15:32 -0500)]
Add Gray8 pixel config

This is still just linear (non-sRGB), but adding sRGB will
be the next step. I've verified that this is really making
R8 textures when uploading Gray8 bitmaps. Tests pass, and
the all_bitmap_configs GM still renders correctly (unlike
when we just mapped Gray8 to Alpha8).

This adds another pixel config, which could grow our cache
footprint, but the benefits of not using 4bpp for 1bpp data
should outweigh that?

BUG=skia:6110

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

7 years agoStart making texture coordinates be absolute
Robert Phillips [Mon, 9 Jan 2017 19:23:59 +0000 (14:23 -0500)]
Start making texture coordinates be absolute

The idea here is that we will pass GrTextureProxys in (where we're currently passing GrTextures) and defer the normalization until the texture is actually instantiated (and possibly move it to the GPU entirely)

This CL does (intentionally) change the texturedomaineffect GM but I believe the new behavior is more correct.

Change-Id: I4e0510b3dfb65ff0d0ee5921f9a6f94151e602d3
Reviewed-on: https://skia-review.googlesource.com/6807
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoSkSplicer: start on arm64
Mike Klein [Mon, 9 Jan 2017 22:21:32 +0000 (17:21 -0500)]
SkSplicer: start on arm64

Seems to be working.  The jump to loop_start might be a little off, but not by much.  Correctness is really still a big TODO.

$ adb shell 'cd /data/local/tmp; ./monobench SkRasterPipeline 200'
SkRasterPipeline_…
200  …f16_compile 1x  …f16_run 1.42x  …srgb_compile 2.21x  …srgb_run 2.59x⏎

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

7 years agoRevert "Improve quad edges' smoothness in non-AA cases"
Mike Klein [Tue, 10 Jan 2017 14:21:12 +0000 (14:21 +0000)]
Revert "Improve quad edges' smoothness in non-AA cases"

This reverts commit d4ed326d6f3704995b0e91292bf2c87e9d36bb14.

Reason for revert: reverting temporarily to get us rolling into Chrome again.

Must be this CL right?
https://storage.googleapis.com/chromium-layout-test-archives/linux_trusty_blink_rel/3364/layout-test-results/results.html

Original change's description:
> Improve quad edges' smoothness in non-AA cases
>
> Previously, non-AA quad edges only have an accuracy about 1/2 pixel
> (while the AA quad edges have an accuracy about 1/8 pixel).  Now, we
> increase non-AA quad edges' accuracy to 1/8 pixel as well.
>
> The difference is very significant for rotating non-AA filled circles.
> For example, run `./out/Debug/SampleApp --slide GM:fillcircle` with AA
> turned off (by pressing b).
>
> The benchmark added reveals that increasing quad accuracy from 1/2 to
> 1/8 doesn't affect the performance significantly. The following is the
> 1/2-accuracy performance versus 1/8-accuracy performance:
>
> curr/maxrss     loops   min     median  mean    max     stddev  samples
> config  bench
> 7/17  MB        19      2.43µs  2.57µs  2.81µs  10.5µs  22%     16119
> 8888    path_fill_big_nonaacircle
> 7/17  MB        17      1.38µs  1.42µs  1.52µs  13µs    20%     21409
> 8888    path_fill_small_nonaacircle
>
> curr/maxrss     loops   min     median  mean    max     stddev  samples
> config  bench
> 7/17  MB        71      2.52µs  2.59µs  2.79µs  7.67µs  19%     7557
> 8888    path_fill_big_nonaacircle
> 7/17  MB        64      1.45µs  1.49µs  1.51µs  2.39µs  5%      12704
> 8888    path_fill_small_nonaacircle
>
>
> BUG=skia:
>
> Change-Id: I3482098aeafcc6f2ec9aa3382977c0dc1b650964
> Reviewed-on: https://skia-review.googlesource.com/6699
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Yuqian Li <liyuqian@google.com>
>

TBR=caryclark@google.com,liyuqian@google.com,reed@google.com,djsollen@google.com,bungeman@google.com,reviews@skia.org,fmalita@chromium.org
BUG=skia:
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I5bc4596ab506f6f61ac2da91a07cf51d61114f31
Reviewed-on: https://skia-review.googlesource.com/6829
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
7 years agoGenerate Signed Distance Field directly from vector path
joel.liang [Tue, 10 Jan 2017 02:39:43 +0000 (18:39 -0800)]
Generate Signed Distance Field directly from vector path

Add SkGenerateDistanceFieldFromPath API to generate signed distance field directly from SkPath.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1643143002

Committed: https://skia.googlesource.com/skia/+/4de97a64e8829323a7070b623411d9f9ddb0cd0f
Committed: https://skia.googlesource.com/skia/+/e8f0a7b986f1e5583c9bc162efcdd92fd6430549
Committed: https://skia.googlesource.com/skia/+/67c7c81a82b6351e9fbbf235084d7120162d9268
Review-Url: https://codereview.chromium.org/1643143002
Committed: https://skia.googlesource.com/skia/+/64b70b096ac20833d9737758a4bd5f2a51078bc4
Review-Url: https://codereview.chromium.org/1643143002
Committed: https://skia.googlesource.com/skia/+/6d2f73c364d0d823f14d1ddebc88e0bcbc8f0634
Review-Url: https://codereview.chromium.org/1643143002

7 years agoMove resource ref/io manipulation from GrProgramElement to GrProcessor
Brian Salomon [Mon, 9 Jan 2017 20:30:02 +0000 (15:30 -0500)]
Move resource ref/io manipulation from GrProgramElement to GrProcessor

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

7 years agoRename function in PathOpsExtendedTest which takes strings.
Ben Wagner [Mon, 9 Jan 2017 20:54:34 +0000 (15:54 -0500)]
Rename function in PathOpsExtendedTest which takes strings.

A few methods in PathOpsExtendedTest were changed to write to SkStrings
instead of SkStreams. However, the names of these functions confusingly
still have "Stream" in their names. This CL is just a static function
rename and some small clean-up.

Change-Id: Idf21b2aba28a2f984ef30cb5c18e26a43a9c7201
Reviewed-on: https://skia-review.googlesource.com/6819
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>

7 years agoAllow constrained and unconstrained picture-images
Matt Sarett [Mon, 9 Jan 2017 20:59:17 +0000 (15:59 -0500)]
Allow constrained and unconstrained picture-images

BUG=skia:

Change-Id: Id9b7b2c82c634fec50f9a57f4b59ce0c02e0706a
Reviewed-on: https://skia-review.googlesource.com/6818
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
7 years agodocumentation: corrections to PDF docs
Hal Canary [Mon, 9 Jan 2017 20:58:56 +0000 (15:58 -0500)]
documentation: corrections to PDF docs

NOTRY=true
Change-Id: Ib3a1ca0111c9fa2ed34021420c410f816e196274
Reviewed-on: https://skia-review.googlesource.com/6820
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

7 years agoRoll FreeType past 2.7.1.
Ben Wagner [Mon, 9 Jan 2017 20:12:33 +0000 (15:12 -0500)]
Roll FreeType past 2.7.1.

https://skia.googlesource.com/third_party/freetype2.git/+log/ffd8f6223607e..08fd250e1af0aa16

This picks up a number of fixes and an implementation of
FT_Get_Var_Design_Coordinates.

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

7 years agoAdd robocop instructions on how to interact with the autoroller
Ravi Mistry [Mon, 9 Jan 2017 19:31:33 +0000 (14:31 -0500)]
Add robocop instructions on how to interact with the autoroller

BUG=skia:6065

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

Change-Id: I04acc6d4a75ce01a3c0af94091ada84aeadc7da8
Reviewed-on: https://skia-review.googlesource.com/6812
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>

7 years agoRemove unused unique ID from GrProgramElement
Brian Salomon [Mon, 9 Jan 2017 15:14:34 +0000 (10:14 -0500)]
Remove unused unique ID from GrProgramElement

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

7 years agoexclude src/splicer from g3
Mike Klein [Mon, 9 Jan 2017 18:40:00 +0000 (13:40 -0500)]
exclude src/splicer from g3

Change-Id: Id1ecf20bb785e5979afa9e07ca4bb04a7d839fb7
Reviewed-on: https://skia-review.googlesource.com/6806
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
7 years agoVarious memory leak fixes in Vulkan
Greg Daniel [Fri, 6 Jan 2017 19:40:08 +0000 (14:40 -0500)]
Various memory leak fixes in Vulkan

BUG=skia:6101

Change-Id: Iee798dd2d9dcc4521f643b814e65029b9383cc6f
Reviewed-on: https://skia-review.googlesource.com/6696
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>

7 years agoImprove quad edges' smoothness in non-AA cases
Yuqian Li [Fri, 6 Jan 2017 21:31:46 +0000 (16:31 -0500)]
Improve quad edges' smoothness in non-AA cases

Previously, non-AA quad edges only have an accuracy about 1/2 pixel
(while the AA quad edges have an accuracy about 1/8 pixel).  Now, we
increase non-AA quad edges' accuracy to 1/8 pixel as well.

The difference is very significant for rotating non-AA filled circles.
For example, run `./out/Debug/SampleApp --slide GM:fillcircle` with AA
turned off (by pressing b).

The benchmark added reveals that increasing quad accuracy from 1/2 to
1/8 doesn't affect the performance significantly. The following is the
1/2-accuracy performance versus 1/8-accuracy performance:

curr/maxrss     loops   min     median  mean    max     stddev  samples
config  bench
7/17  MB        19      2.43µs  2.57µs  2.81µs  10.5µs  22%     16119
8888    path_fill_big_nonaacircle
7/17  MB        17      1.38µs  1.42µs  1.52µs  13µs    20%     21409
8888    path_fill_small_nonaacircle

curr/maxrss     loops   min     median  mean    max     stddev  samples
config  bench
7/17  MB        71      2.52µs  2.59µs  2.79µs  7.67µs  19%     7557
8888    path_fill_big_nonaacircle
7/17  MB        64      1.45µs  1.49µs  1.51µs  2.39µs  5%      12704
8888    path_fill_small_nonaacircle

BUG=skia:

Change-Id: I3482098aeafcc6f2ec9aa3382977c0dc1b650964
Reviewed-on: https://skia-review.googlesource.com/6699
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>

7 years agoGrTessellator: fix compile when LOGGING_ENABLED.
Stephen White [Mon, 9 Jan 2017 18:11:18 +0000 (13:11 -0500)]
GrTessellator: fix compile when LOGGING_ENABLED.

BUG=skia:

Change-Id: I1f0df58ffe79e439f92a8c1cd3c39812c32d039f
Reviewed-on: https://skia-review.googlesource.com/6743
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephan White <senorblanco@chromium.org>

7 years agoOmit flaky tests.
Ben Wagner [Mon, 9 Jan 2017 16:37:04 +0000 (11:37 -0500)]
Omit flaky tests.

BUG=skia:5876,skia:6082,skia:6086,skia:6097

Change-Id: I1f302c7bb0d147d976f320e01f969a1bd693c78c
Reviewed-on: https://skia-review.googlesource.com/6804
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>

7 years agoSeparate SkArithmeticImageFilter from SkXfermodeImageFilter.
Brian Salomon [Mon, 9 Jan 2017 15:48:23 +0000 (10:48 -0500)]
Separate SkArithmeticImageFilter from SkXfermodeImageFilter.

Change-Id: I145eed7276456b546ca5c66bc1a0f0f74a84f138
Reviewed-on: https://skia-review.googlesource.com/6728
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoSpecify bit depth and color space in SkImage::MakeFromPicture()
Matt Sarett [Mon, 9 Jan 2017 17:38:59 +0000 (12:38 -0500)]
Specify bit depth and color space in SkImage::MakeFromPicture()

BUG=skia:

Change-Id: I1d2a2b1f97557fc3e7ca6c2bdad6329f7760dbd2
Reviewed-on: https://skia-review.googlesource.com/6685
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoRevert "Revert "Removing ref counting from GrXPFactory.""
Brian Salomon [Mon, 9 Jan 2017 16:46:10 +0000 (11:46 -0500)]
Revert "Revert "Removing ref counting from GrXPFactory.""

This reverts commit 003312a211e65f35e402d6fe80a32e23d4c94ac4.

Change-Id: Ib41065e5c356d1dd99e70fa10611ac6756c2b79d
Reviewed-on: https://skia-review.googlesource.com/6803
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoSkSplicer
Mike Klein [Mon, 9 Jan 2017 15:20:13 +0000 (10:20 -0500)]
SkSplicer

I think I may have cracked the compile-ahead-of-time-splice-at-runtime nut.

This compiles stages ahead of time using clang, then splices them together at runtime.  This means the stages can be written in simple C++, with some mild restrictions.

This performs identically to our Xbyak experiment, and already supports more stages.  As written this stands alone from SkRasterPipeline_opts.h, but I'm fairly confident that the bulk (the STAGE implementations) can ultimately be shared.

As of PS 25 or so, this also supports all the stages used by bench/SkRasterPipelineBench.cpp:

    SkRasterPipeline_…
    400  …f16_compile 1x  …f16_run 1.38x  …srgb_compile 1.89x  …srgb_run 2.21x

That is, ~30% faster than baseline for f16, ~15% faster for sRGB.

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

7 years agoRevert "Removing ref counting from GrXPFactory."
Brian Salomon [Mon, 9 Jan 2017 16:00:33 +0000 (16:00 +0000)]
Revert "Removing ref counting from GrXPFactory."

This reverts commit a8f80de2bc17672b4b6f26d3cf6b38123ac850c9.

Reason for revert: nanobench failing on windows bots, possibly others

Change-Id: Iacb8c650064a28654c165665be057377ffb02ba5
Reviewed-on: https://skia-review.googlesource.com/6802
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoRemoving ref counting from GrXPFactory.
Brian Salomon [Sat, 7 Jan 2017 14:37:13 +0000 (09:37 -0500)]
Removing ref counting from GrXPFactory.

All GrXPFactory instances are static constexpr.

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