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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Brian Salomon [Mon, 9 Jan 2017 14:37:06 +0000 (09:37 -0500)]
Mark flatennable macros as block beginning/ending in .clang-format
Change-Id: I08e907cd5051d9f8cd97cdd773f9ff326cc6a0d8
Reviewed-on: https://skia-review.googlesource.com/6739
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Matt Sarett [Mon, 9 Jan 2017 14:14:28 +0000 (09:14 -0500)]
Fix SkColorSpaceXform F16 behavior
After changing the matrix representation, we are no longer guaranteed
that the "a" in "rgba" is zeroed in store_f16_1() opaque.
This fixed Gold:
https://gold.skia.org/search?blame=
26a0543579cf7473de2099ce0d056ac8aba83811&head=true&include=false&limit=50&neg=false&pos=false&query=source_type%3DcolorImage&unt=true
Also tacked on an optimization. No need to load alpha when the image
is opaque.
BUG=skia:
Change-Id: I28d80c486b6644eee4a38a7a70f94eb51474e4b0
Reviewed-on: https://skia-review.googlesource.com/6738
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>