platform/upstream/libSkiaSharp.git
7 years agoDW last resort font default name not necessary.
Ben Wagner [Wed, 8 Mar 2017 15:36:31 +0000 (10:36 -0500)]
DW last resort font default name not necessary.

Currently in SkFontMgr_DirectWrite when trying to find some last resort
font SystemParametersInfoW failing is considered a fatal error and so
onLegacyCreateTypeface will return nullptr. Instead, treat failure of
getDefaultFontFamily as ignorable and continue to the default default.

BUG=chromium:697672

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

7 years agoSkPDF: Always get advances at unitsPerEm.
Hal Canary [Mon, 6 Mar 2017 21:18:49 +0000 (16:18 -0500)]
SkPDF: Always get advances at unitsPerEm.

  * Work around BUG=chromium:696356
  * SkTestScalerContext needs a return a em-size.
  * SkPDFFont::MakeVectorCache which always produces a glyph
    cache at emsize.  Replaces vector_cache().
  * Stop looking at fLastGlyphID and fEmSize in TypefaceMetrics.

Change-Id: I28d93b8f62d461a60fa046e9aaf7fa6d116a7ee5
Reviewed-on: https://skia-review.googlesource.com/9324
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

7 years agoRemove SK_SUPPORT_LEGACY_AAA flag as chromium now turns it off
Yuqian Li [Mon, 6 Mar 2017 22:04:58 +0000 (17:04 -0500)]
Remove SK_SUPPORT_LEGACY_AAA flag as chromium now turns it off

BUG=skia:

Change-Id: I3b385b8aeab08f402f4471637bf641cd456c8c56
Reviewed-on: https://skia-review.googlesource.com/9327
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>

7 years agoUse glXCreateContextAttribsARB in viewer to make it easier to attach RenderDoc.
Brian Salomon [Wed, 8 Mar 2017 15:50:21 +0000 (10:50 -0500)]
Use glXCreateContextAttribsARB in viewer to make it easier to attach RenderDoc.

Change-Id: I0cc82fe826b81a082b579f60af3d9ef35d5fe351
Reviewed-on: https://skia-review.googlesource.com/9407
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
7 years agoRename not-fBlendCorrectly to fNonLinearBlending
Matt Sarett [Wed, 8 Mar 2017 15:22:41 +0000 (10:22 -0500)]
Rename not-fBlendCorrectly to fNonLinearBlending

No policy or behavior changes here, just a rename.

BUG=skia:

Change-Id: Ieefa5c5bbd40f25d4fef81f07b50b4057ea732b4
Reviewed-on: https://skia-review.googlesource.com/9406
Commit-Queue: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoOptimize mipmap downsample_2_2 in sRGB mode
Matt Sarett [Wed, 8 Mar 2017 14:53:41 +0000 (09:53 -0500)]
Optimize mipmap downsample_2_2 in sRGB mode

Desktop (HP z620)
Before:
mipmap_build_2048x2048_0_gamma 10.5 ms
mipmap_build_2048x2048_1_gamma 77.1 ms
After:
mipmap_build_2048x2048_0_gamma 10.5 ms
mipmap_build_2048x2048_1_gamma 25.1 ms

Pixel XL
Before:
mipmap_build_2048x2048_0_gamma 160 ms
mipmap_build_2048x2048_1_gamma 1.5 s
After:
mipmap_build_2048x2048_0_gamma 160 ms
mipmap_build_2048x2048_1_gamma 313 ms

Also provides marginal performance improvements
for other sRGB downsamples.

BUG=skia:

Change-Id: Icfcd2ccd69676ccf3822db8042a4698e4464bb71
Reviewed-on: https://skia-review.googlesource.com/9386
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoTurn on SkJumper all the time.
Mike Klein [Tue, 7 Mar 2017 15:04:05 +0000 (10:04 -0500)]
Turn on SkJumper all the time.

If the previous CL sticks, it's now easy to turn on SkJumper everywhere:
I was mostly holding back because of build system complexity.

This has the main effect of turning on SkJumper in Chromium.
It's already been on on our local test bots and on Android framework.

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

7 years agoRefactor GrTextBlobCache
Florin Malita [Tue, 7 Mar 2017 21:51:57 +0000 (16:51 -0500)]
Refactor GrTextBlobCache

Instead of a single-level cache with blob-id-derived key, refactor GrTextBlobCache
as a two-level cache with a direct blob-id key (to support efficient lookup by id in
future CLs).

Change-Id: Idf29c05224faeb04919610a3935572773d5aba03
Reviewed-on: https://skia-review.googlesource.com/9400
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>

7 years agoAdd GalaxyS6 bot.
Ben Wagner [Tue, 7 Mar 2017 21:41:43 +0000 (16:41 -0500)]
Add GalaxyS6 bot.

BUG=skia:6337
NOTRY=true

Change-Id: Ibddd57c461d3a1ce62245487dfc0e4eeeba1978a
Reviewed-on: https://skia-review.googlesource.com/9397
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
7 years agoFuzzCanvas: SkColorFilter
Hal Canary [Tue, 7 Mar 2017 21:23:20 +0000 (16:23 -0500)]
FuzzCanvas: SkColorFilter

  * Also fix SkRRect generation to only make valid RRs.a
  * drawDRRect only draws if outer contains inner.
  * Also fix SkComposeColorFilter::toString

Change-Id: Ia75da2813555b7714663929d0ec288ae2a86d9f1
Reviewed-on: https://skia-review.googlesource.com/9399
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
7 years agoFuzz Canvas: Remember that nextRange is inclusive.
Hal Canary [Tue, 7 Mar 2017 20:06:29 +0000 (15:06 -0500)]
Fuzz Canvas: Remember that nextRange is inclusive.

BUG=skia:6336
Change-Id: I5ca005f8bf821d5a6f153c3df80d4c7309519cba
Reviewed-on: https://skia-review.googlesource.com/9395
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

7 years agoAdd viewer GUI options for desktop and Android to toggle instanced rendering.
Brian Salomon [Tue, 7 Mar 2017 20:16:34 +0000 (15:16 -0500)]
Add viewer GUI options for desktop and Android to toggle instanced rendering.

BUG=skia:

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

7 years agooptimize intersect, use getType to utilize fast-case in preTranslate
Mike Reed [Tue, 7 Mar 2017 19:55:37 +0000 (14:55 -0500)]
optimize intersect, use getType to utilize fast-case in preTranslate

10-15% speed up in clip_record_overhead bench

Comparing the raw fType field was missing the (maybe deprecatable) IsRectToRect
bit (0x10), which is set for identity and translate matrices, so we were
never taking the fast case.

BUG=skia:

Change-Id: I1c73f4bae42f2311454c7568ef8891239c3cae83
Reviewed-on: https://skia-review.googlesource.com/9388
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Herb Derby <herb@google.com>
7 years agoSkJumper: constant() embeds constants directly in code
Mike Klein [Tue, 7 Mar 2017 19:41:06 +0000 (14:41 -0500)]
SkJumper: constant() embeds constants directly in code

This is a potential alternative to threading around a constants struct.
I've applied it in a smattering of locations to get a feel for it.
If we like it and the performance is fine, I'll follow up with the rest.

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

7 years agoControl making of GrSemaphore objects inside of GrResourceProvider
Greg Daniel [Tue, 7 Mar 2017 18:37:21 +0000 (13:37 -0500)]
Control making of GrSemaphore objects inside of GrResourceProvider

This change will help us get to the point of not needing access to the GrGpu
object from GrContext.

BUG=skia:

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

7 years agoGrTessellator: convert contours to VertexLists.
Stephen White [Tue, 7 Mar 2017 19:07:18 +0000 (14:07 -0500)]
GrTessellator: convert contours to VertexLists.

This is a cleanup patch; should have no user-visible effects.

Note that contours are now returned opened, rather than closed. This
plays better with VertexList, and makes the code simpler.

BUG=skia:

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

7 years agoGroundwork for nonlinear blending mode in Ganesh
Brian Osman [Tue, 7 Mar 2017 18:22:22 +0000 (13:22 -0500)]
Groundwork for nonlinear blending mode in Ganesh

Changing a bit of plumbing so we have what we need for one-off color
conversion, and fixing the logic in some of our surface validation.

Plenty more to come, want to submit this stuff in manageable chunks.

BUG=skia:6242

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

7 years agoAdd GrOp::wasRecorded and use in instanced rendering for tracking.
Brian Salomon [Mon, 6 Mar 2017 21:36:49 +0000 (16:36 -0500)]
Add GrOp::wasRecorded and use in instanced rendering for tracking.

BUG=skia:

Change-Id: I4c5cdf47d42b7adae3649c7f96caabe68f45acbf
Reviewed-on: https://skia-review.googlesource.com/9308
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
7 years agoSkJumper: a couple stages used by color filters
Mike Klein [Tue, 7 Mar 2017 17:28:11 +0000 (12:28 -0500)]
SkJumper: a couple stages used by color filters

Nothing too interesting here.
  - 4x5 matrix is the same as 2x3 and 3x4, but bigger.
  - luminance to alpha is pretty boring indeed.

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

7 years agoMove from SkChunkAlloc to SkArenaAlloc for PathOps
Herb Derby [Tue, 7 Mar 2017 16:11:47 +0000 (11:11 -0500)]
Move from SkChunkAlloc to SkArenaAlloc for PathOps

Attempt two. Remove ~SkOpContour because it is handled by the SkArenaAlloc.

Change-Id: Id3049db97aebcc1009d403a031f2fac219f58f2f
Reviewed-on: https://skia-review.googlesource.com/9381
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Herb Derby <herb@google.com>

7 years agoBe able to compile nanobench for Chromecast
Kevin Lubick [Tue, 7 Mar 2017 14:45:50 +0000 (09:45 -0500)]
Be able to compile nanobench for Chromecast

Get toolchain from https://goto.google.com/ncoqy and put in
$CAST_TOOLCHAIN

gn gen out/chromecast --args='cc="$CAST_TOOLCHAIN/armv7a/bin/armv7a-cros-linux-gnueabi-gcc" cxx="$CAST_TOOLCHAIN/armv7a/bin/armv7a-cros-linux-gnueabi-g++" ar="$CAST_TOOLCHAIN/armv7a/bin/armv7a-cros-linux-gnueabi-ar" is_official_build=true skia_use_fontconfig=false extra_ldflags=["-static-libstdc++","-static-libgcc"] target_cpu="arm" skia_enable_gpu=false skia_use_system_freetype2=false'

ninja -C out/chromecast nanobench

We go with is_official_build to minimize binary size, as the chromecast
does not have much onboard storage.

They do not package libstdc++ so we add the link options:
-static-libstdc++ -static-libgcc

-momit-leaf-frame-pointer is not supported, so we delete it, as it is not important.

BUG=skia:

Change-Id: I7b0882ab5d6109f07345a2d59df265efef9b9554
Reviewed-on: https://skia-review.googlesource.com/9338
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoRemove dead links in SampleApp docs.
Mike Klein [Tue, 7 Mar 2017 16:27:18 +0000 (11:27 -0500)]
Remove dead links in SampleApp docs.

NOTRY=true

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

7 years agoRevert[6] "Remove SkDraw from device-draw methods, and enable device-centric clipping...
Mike Reed [Tue, 7 Mar 2017 14:37:29 +0000 (09:37 -0500)]
Revert[6] "Remove SkDraw from device-draw methods, and enable device-centric clipping.""""""

Previous failure was failure to detect that the clip wasn't wide-open when
optimizing for retain-vs-discard in copy-on-write. gm:copy_on_write_retain
detected this. Now fixed by adding new method to SkBaseDevice.h

This reverts commit 27d07f0acb85eea4062075dfbe9148ce12d92c66.

BUG=skia:6214

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

7 years agoMove GrDrawOp pipeline/clip processing to GrRenderTargetContext
Brian Salomon [Mon, 6 Mar 2017 21:17:12 +0000 (16:17 -0500)]
Move GrDrawOp pipeline/clip processing to GrRenderTargetContext

This is currently done in GrOpList. However, it can trigger resource creation, which in turn can trigger a flush. In the future flushing may destroy the op list.

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

7 years agoBack to code as data arrays, this time in .text.
Mike Klein [Tue, 7 Mar 2017 12:59:52 +0000 (07:59 -0500)]
Back to code as data arrays, this time in .text.

This technique lets us generate a single source file, use the C++
preprocessor, and avoid the pain of working with assemblers.

By using the section attribute or declspec allocate, we can put these
data arrays into the .text section, making them ordinary code.

This is like the previous solution, except it should actually run.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Debug,Test-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Debug,Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug

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

7 years agoDon't run image tests on msaa configs.
Brian Salomon [Tue, 7 Mar 2017 14:08:36 +0000 (09:08 -0500)]
Don't run image tests on msaa configs.

BUG=skia:6331
BUG=skia:4888

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

7 years agoRevert "Move from SkChunkAlloc to SkArenaAlloc for PathOps"
Derek Sollenberger [Tue, 7 Mar 2017 11:14:59 +0000 (11:14 +0000)]
Revert "Move from SkChunkAlloc to SkArenaAlloc for PathOps"

This reverts commit 38c60180241e335e368fdadbf7856aff114ff668.

Reason for revert: breaking ASAN run in TAP build

Original change's description:
> Move from SkChunkAlloc to SkArenaAlloc for PathOps
>
> Change-Id: Iab111a4ebcae4e896b1fdfe285def9ef0ae2ab6b
> Reviewed-on: https://skia-review.googlesource.com/7314
> Reviewed-by: Cary Clark <caryclark@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
>

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

Change-Id: I6364254571bb1617a9f45ed08f2af4a59f9d5841
Reviewed-on: https://skia-review.googlesource.com/9335
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>

7 years agofix RecordOptsTest.cpp on Android framework
Mike Klein [Tue, 7 Mar 2017 01:02:32 +0000 (20:02 -0500)]
fix RecordOptsTest.cpp on Android framework

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

7 years agoRevert "Fix new IT blocks ARMv8"
Mike Klein [Tue, 7 Mar 2017 00:54:47 +0000 (00:54 +0000)]
Revert "Fix new IT blocks ARMv8"

This reverts commit 90165c2269bc33ca3d6aaa73d528194daf48da4e.

Reason for revert: Skia and Chrome iOS builds broken.

../../third_party/skia/include/private/SkFixed.h:106:41: error: invalid output constraint '+t' in asm
        asm("vcvt.s32.f32 %0, %0, #16": "+t"(x));

Original change's description:
> Fix new IT blocks ARMv8
>
> ARMv8 specifies that an IT block should be followed by only one 16-bit instruction.
> * SkFloatToFix is back to a C implementation that mirrors the assembly code.
>
> * S32A_D565_Opaque_neon switched the usage of the temporary 'ip' register to let
> the compiler choose what is best in the context of the IT block. And replaced
> 'keep_dst' by 'ip' where low register or high register does not matter.
>
> BUG=skia:
>
> CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
>
> Change-Id: I096759841c972e9300c1d0293bc80d3c3ff2747b
> Reviewed-on: https://skia-review.googlesource.com/9340
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Commit-Queue: Mike Klein <mtklein@chromium.org>
>

TBR=mtklein@chromium.org,amaury.leleyzour@arm.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

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

7 years agoFix new IT blocks ARMv8
Amaury Le Leyzour [Mon, 6 Mar 2017 21:00:49 +0000 (13:00 -0800)]
Fix new IT blocks ARMv8

ARMv8 specifies that an IT block should be followed by only one 16-bit instruction.
* SkFloatToFix is back to a C implementation that mirrors the assembly code.

* S32A_D565_Opaque_neon switched the usage of the temporary 'ip' register to let
the compiler choose what is best in the context of the IT block. And replaced
'keep_dst' by 'ip' where low register or high register does not matter.

BUG=skia:

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

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

7 years agoadd test for copy-on-write optimization
Mike Reed [Mon, 6 Mar 2017 21:37:07 +0000 (16:37 -0500)]
add test for copy-on-write optimization

exercises a bug in the device-clip CL (hopefully to land soon)
BUG=skia:

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

7 years agoAdd half-float mipmap benchmarks too
Brian Osman [Mon, 6 Mar 2017 21:16:15 +0000 (16:16 -0500)]
Add half-float mipmap benchmarks too

Just trying to get better perf coverage of our mipmapping code, in
anticipation of different optimization strategies for the sRGB case.
I want to have some good reference points to measure progress.

BUG=skia:

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

7 years agobench clip overhead during recording
Mike Reed [Mon, 6 Mar 2017 19:14:09 +0000 (14:14 -0500)]
bench clip overhead during recording

BUG=skia:

Change-Id: I739c5a7f44380e1218627b1b6430a03950ae84aa
Reviewed-on: https://skia-review.googlesource.com/9309
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoTurn off savelayer optimization for Android framework
Yuqian Li [Mon, 6 Mar 2017 20:47:09 +0000 (15:47 -0500)]
Turn off savelayer optimization for Android framework

This is a simpler version of https://skia-review.googlesource.com/c/8970/

Note that we couldn't do the optimization and add back the clip effect by
another clipRect or clipPath call because the final matrix is not available at
recording time.

BUG=skia:6334

Change-Id: I3ca091bdc1ee1d265a79fb88d0a6f9afe2b27e58
Reviewed-on: https://skia-review.googlesource.com/9311
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>

7 years agoRemove Win10 IntelHD405 bots.
Ben Wagner [Mon, 6 Mar 2017 21:01:53 +0000 (16:01 -0500)]
Remove Win10 IntelHD405 bots.

We are still testing IntelHD405 on Ubuntu16.

There are no interesting differences in gms between Braswell
(IntelHD405) and Broadwell (IntelIris6100).

Perf results are obviously worse for the slower chip, but the results
seem to track fairly well between these two bot flavors.

BUG=skia:6324
NOTRY=true

Change-Id: I326e620a64c9920ffe9c6ac24948fe78422472ce
Reviewed-on: https://skia-review.googlesource.com/9321
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>

7 years agoOmit abnormal.wbmp on Linux IntelHD405.
Ben Wagner [Mon, 6 Mar 2017 18:33:03 +0000 (13:33 -0500)]
Omit abnormal.wbmp on Linux IntelHD405.

BUG=skia:6331

Change-Id: Id3ac102174c45b623dc2b071070b230954b901a2
Reviewed-on: https://skia-review.googlesource.com/9305
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>

7 years agoRoll Recipe DEPS
Eric Boren [Mon, 6 Mar 2017 18:42:01 +0000 (13:42 -0500)]
Roll Recipe DEPS

BUG=skia:

Change-Id: I942ebebcb299440202b7fde205db3b9025401ae3
Reviewed-on: https://skia-review.googlesource.com/9285
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
7 years agoMove from SkChunkAlloc to SkArenaAlloc for PathOps
Herb Derby [Wed, 1 Mar 2017 21:48:12 +0000 (16:48 -0500)]
Move from SkChunkAlloc to SkArenaAlloc for PathOps

Change-Id: Iab111a4ebcae4e896b1fdfe285def9ef0ae2ab6b
Reviewed-on: https://skia-review.googlesource.com/7314
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Herb Derby <herb@google.com>

7 years agoAdd bench for odd-sized mipmapping w/sRGB filtering
Brian Osman [Mon, 6 Mar 2017 18:58:54 +0000 (13:58 -0500)]
Add bench for odd-sized mipmapping w/sRGB filtering

Need some data to inform a decision about always doing gamma correct
mipmapping.

BUG=skia:

Change-Id: I92fd120413aae3d946252b0b7122c36bc74f58da
Reviewed-on: https://skia-review.googlesource.com/9307
Commit-Queue: Matt Sarett <msarett@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
7 years agoUpdate bots to NDK r14.
Mike Klein [Mon, 6 Mar 2017 15:00:31 +0000 (10:00 -0500)]
Update bots to NDK r14.

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Mac-Clang-arm64-Debug-Android,Build-Ubuntu-Clang-arm-Debug-Android,Build-Ubuntu-Clang-arm64-Debug-Android,Build-Ubuntu-Clang-mips64el-Debug-Android,Build-Ubuntu-Clang-mipsel-Debug-Android,Build-Ubuntu-Clang-x64-Debug-Android,Build-Ubuntu-Clang-x86-Debug-Android,Build-Win-Clang-arm64-Release-Android

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

7 years agoStore clipped bounds on GrOp rather than in parallel in GrRenderTargetOpList.
Brian Salomon [Mon, 6 Mar 2017 17:02:34 +0000 (12:02 -0500)]
Store clipped bounds on GrOp rather than in parallel in GrRenderTargetOpList.

When the op is recorded we update its bounds to incorporate both clipping and aa bloat.

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

7 years agoAdd ability to insert systrace markers for the android framework
Derek Sollenberger [Fri, 3 Mar 2017 20:48:33 +0000 (15:48 -0500)]
Add ability to insert systrace markers for the android framework

Change-Id: I34cee8382b73f1d95fde279377f976ebad6983a7
Reviewed-on: https://skia-review.googlesource.com/9232
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Stan Iliev <stani@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>

7 years agoAdd SkColorSpace::isSRGB()
Matt Sarett [Mon, 6 Mar 2017 16:11:23 +0000 (11:11 -0500)]
Add SkColorSpace::isSRGB()

BUG=skia:

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

7 years agoAdd legacy++ to viewer (sRGB w/nonlinear blending)
Brian Osman [Mon, 6 Mar 2017 16:47:26 +0000 (11:47 -0500)]
Add legacy++ to viewer (sRGB w/nonlinear blending)

BUG=skia:6242

Change-Id: I696de8eac61aebaf5cb07d8874bde3c7bd470277
Reviewed-on: https://skia-review.googlesource.com/9299
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoRename PentiumN3700 to IntelHD405.
Ben Wagner [Mon, 6 Mar 2017 16:10:54 +0000 (11:10 -0500)]
Rename PentiumN3700 to IntelHD405.

BUG=skia:6324
NOTRY=true

Change-Id: I64d87d40c85f1e3a1b2c5aee8d5d68fca81192d6
Reviewed-on: https://skia-review.googlesource.com/9301
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>

7 years agoRemove PLS path renderer
Brian Salomon [Mon, 6 Mar 2017 16:29:48 +0000 (11:29 -0500)]
Remove PLS path renderer

Change-Id: Ib727b0749a5a7da95832970e79804417e8b6a247
Reviewed-on: https://skia-review.googlesource.com/9300
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

7 years agoAdd unit tests for SkImage::colorSpace()
Matt Sarett [Mon, 6 Mar 2017 15:28:24 +0000 (10:28 -0500)]
Add unit tests for SkImage::colorSpace()

BUG=skia:

Change-Id: I1cb4bd1b5ca02f37bd08679803cf645b4d5ecc00
Reviewed-on: https://skia-review.googlesource.com/9297
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agoFuzzCanvas: fix BUG=skia:6321
Hal Canary [Mon, 6 Mar 2017 13:30:44 +0000 (08:30 -0500)]
FuzzCanvas: fix BUG=skia:6321

Change-Id: I979b85cbe1eadca667d5d622bbbe24749da7b770
Reviewed-on: https://skia-review.googlesource.com/9289
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
7 years agoRoll Recipe DEPS
Eric Boren [Mon, 6 Mar 2017 15:00:04 +0000 (10:00 -0500)]
Roll Recipe DEPS

Bisect remaining commits...
BUG=skia:

Change-Id: I0bf8cfdcc60bc1a52ff12554d883e0a37537962e
Reviewed-on: https://skia-review.googlesource.com/9292
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>

7 years agoDocumentation: fix width
Hal Canary [Mon, 6 Mar 2017 15:32:54 +0000 (10:32 -0500)]
Documentation: fix width

NOTRY=true
Change-Id: I60861019cc19537eaff000dec15b4ecbea54e915
Reviewed-on: https://skia-review.googlesource.com/9298
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
7 years agoDocumentation: ASAN, MSAN, and TSAN
Hal Canary [Thu, 2 Mar 2017 20:14:07 +0000 (15:14 -0500)]
Documentation: ASAN, MSAN, and TSAN

NOTRY=true
Change-Id: I7ed212047a60d323e2e98470fc1eed454d333958
Reviewed-on: https://skia-review.googlesource.com/9170
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoFix transfer function epsilon
Matt Sarett [Mon, 6 Mar 2017 14:11:54 +0000 (09:11 -0500)]
Fix transfer function epsilon

This has never worked.
1.0f == 1.0f + FLT_MIN

BUG=skia:

Change-Id: I73c8f321ea0d13497cb74f7bd5965d5910e664d1
Reviewed-on: https://skia-review.googlesource.com/9280
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
7 years agoSupport Android NDK r14.
Mike Klein [Sat, 4 Mar 2017 10:39:54 +0000 (05:39 -0500)]
Support Android NDK r14.

simpleperf has moved a little since r13.  To support both, remove its
copy step.

Explicitly disable the Clang integrated assembler on MIPS.  It has only
understood the 'usw' (unaligned store) pseudoinstruction for about 4
months, and that won't be part of a Clang release until the upcoming
Clang 4.0.  Must be that -no-integrated-as was the default in r13.

All six platforms build on my laptop with r14 now.
Will follow up with the CL that moves the bots to r14.

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Mac-Clang-arm64-Debug-Android,Build-Ubuntu-Clang-arm-Debug-Android,Build-Ubuntu-Clang-arm64-Debug-Android,Build-Ubuntu-Clang-mips64el-Debug-Android,Build-Ubuntu-Clang-mipsel-Debug-Android,Build-Ubuntu-Clang-x64-Debug-Android,Build-Ubuntu-Clang-x86-Debug-Android,Build-Win-Clang-arm64-Release-Android

Change-Id: Ic00981d534613ebab8f6e7646b967493728b91d9
Reviewed-on: https://skia-review.googlesource.com/9237
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
7 years agoRoll Recipe DEPS
Eric Boren [Mon, 6 Mar 2017 14:06:53 +0000 (09:06 -0500)]
Roll Recipe DEPS

Just one commit:
97ab90f Reland "Make Ubuntu-14.04 the default version of Linux used when triggering Swarming tasks"

BUG=skia:

Change-Id: Ie9f37a1d1bb8326cf34123765618221b1460d6ea
Reviewed-on: https://skia-review.googlesource.com/9290
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>

7 years agoRoll Recipe DEPS
Eric Boren [Mon, 6 Mar 2017 13:06:16 +0000 (08:06 -0500)]
Roll Recipe DEPS

BUG=skia:

Change-Id: Id93e801d1ad9df5a3ce82a4b6b2ec52e3fc2981b
Reviewed-on: https://skia-review.googlesource.com/9288
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>

7 years agoRemove XP override color.
Brian Salomon [Fri, 3 Mar 2017 19:30:15 +0000 (14:30 -0500)]
Remove XP override color.

The only use case for this was using the blend constant for LCD text. Now instead of overriding the op's color with an alpha we upload the alpha as a uniform.

This also removes two unused parameters from GrXferProcessor::getOptimizations.

Change-Id: I8268da9904a5d26649c6ae81a5705b0930893904
Reviewed-on: https://skia-review.googlesource.com/9221
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
7 years agoUpdate SKP version
UpdateSKPs [Sun, 5 Mar 2017 06:56:28 +0000 (06:56 +0000)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=update-skps@skia.org
NO_MERGE_BUILDS

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

7 years agoDelete yasm config files
Matt Sarett [Sat, 4 Mar 2017 19:49:05 +0000 (14:49 -0500)]
Delete yasm config files

These aren't currently being used.

Our clients typically compile libjpeg-turbo themselves and use their
own yasm to build the .asm files.

For the libjpeg-turbo that we use to test, we don't compile the
.asm optimizations.  Maybe we should do this...  But while we don't
there is no need for the yasm config files.

BUG=skia:

Change-Id: I903a47ce444b6740b32fe8d99472c4d959058f7b
Reviewed-on: https://skia-review.googlesource.com/9238
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoTidy up DEPS
Mike Klein [Fri, 3 Mar 2017 16:59:27 +0000 (11:59 -0500)]
Tidy up DEPS

 - Sort alphabetically and align on ':'.
 - Remove yasm deps.  They're unused since we switched to GN.
 - Remove fetch-gn hook.  git-sync-deps does this now.
 - Remove comments about why DEPS are needed.
   They're all pretty obvious if you grep for the dependency name.

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

7 years agoRevert "Revert "Revert "Revert[2] "Remove SkDraw from device-draw methods, and enable...
Mike Reed [Sat, 4 Mar 2017 21:47:47 +0000 (21:47 +0000)]
Revert "Revert "Revert "Revert[2] "Remove SkDraw from device-draw methods, and enable device-centric clipping."""""

This reverts commit 025e2444c1f5a0c3cdc0bf60d1fa59941a0b5db4.

Reason for revert: layouttest failures -- need to rebase these (tiny diffs in gradients)

https://storage.googleapis.com/chromium-layout-test-archives/linux_trusty_blink_rel/6018/layout-test-results/results.html

Original change's description:
> Revert "Revert "Revert[2] "Remove SkDraw from device-draw methods, and enable device-centric clipping.""""
>
> This reverts commit baf06bc89a0ee2ac4033281e7310f6c727faab79.
>
> Reason for revert: reland to diagnose possible g3 failure
>
> Original change's description:
> > Revert "Revert[2] "Remove SkDraw from device-draw methods, and enable device-centric clipping."""
> >
> > This reverts commit cfaa63237b152ae216f1351207bce3ea9808814c.
> >
> > Reason for revert: speculative revert to fix Google3
> >
> > Original change's description:
> > > Revert[2] "Remove SkDraw from device-draw methods, and enable device-centric clipping.""
> > >
> > > passes new (augmented) CanvasClipType unittest
> > > fixed rasterclipstack::setnewsize
> > >
> > > This reverts commit ea5e676a7b75600edcde3912886486004ccd7626.
> > >
> > > BUG=skia:
> > >
> > > Change-Id: I004653e0f4d01454662f8516fccab0046486f273
> > > Reviewed-on: https://skia-review.googlesource.com/9185
> > > Reviewed-by: Brian Salomon <bsalomon@google.com>
> > > Commit-Queue: Mike Reed <reed@google.com>
> > >
> >
> > TBR=bsalomon@google.com,reed@google.com,reviews@skia.org
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=skia:
> >
> > Change-Id: Ibd7ee6383999f008eb6ee59c1c3f1c06a86044ea
> > Reviewed-on: https://skia-review.googlesource.com/9230
> > Reviewed-by: Cary Clark <caryclark@google.com>
> > Commit-Queue: Cary Clark <caryclark@google.com>
> >
>
> TBR=bsalomon@google.com,reviews@skia.org,caryclark@google.com,reed@google.com,mtklein@chromium.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Change-Id: I093fa8788056be39af01191bbf3a9e5de9f73954
> Reviewed-on: https://skia-review.googlesource.com/9244
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Mike Reed <reed@google.com>
>

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

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

7 years agoAdd SkImage::colorSpace() and SkImage::refColorSpace()
Matt Sarett [Thu, 2 Mar 2017 17:42:35 +0000 (12:42 -0500)]
Add SkImage::colorSpace() and SkImage::refColorSpace()

BUG=skia:

Change-Id: I31c2a2731cd70e4e5162905de0ad129516dacc6b
Reviewed-on: https://skia-review.googlesource.com/9152
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoRevert "Revert "Revert[2] "Remove SkDraw from device-draw methods, and enable device...
Mike Reed [Sat, 4 Mar 2017 19:43:23 +0000 (19:43 +0000)]
Revert "Revert "Revert[2] "Remove SkDraw from device-draw methods, and enable device-centric clipping.""""

This reverts commit baf06bc89a0ee2ac4033281e7310f6c727faab79.

Reason for revert: reland to diagnose possible g3 failure

Original change's description:
> Revert "Revert[2] "Remove SkDraw from device-draw methods, and enable device-centric clipping."""
>
> This reverts commit cfaa63237b152ae216f1351207bce3ea9808814c.
>
> Reason for revert: speculative revert to fix Google3
>
> Original change's description:
> > Revert[2] "Remove SkDraw from device-draw methods, and enable device-centric clipping.""
> >
> > passes new (augmented) CanvasClipType unittest
> > fixed rasterclipstack::setnewsize
> >
> > This reverts commit ea5e676a7b75600edcde3912886486004ccd7626.
> >
> > BUG=skia:
> >
> > Change-Id: I004653e0f4d01454662f8516fccab0046486f273
> > Reviewed-on: https://skia-review.googlesource.com/9185
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> > Commit-Queue: Mike Reed <reed@google.com>
> >
>
> TBR=bsalomon@google.com,reed@google.com,reviews@skia.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:
>
> Change-Id: Ibd7ee6383999f008eb6ee59c1c3f1c06a86044ea
> Reviewed-on: https://skia-review.googlesource.com/9230
> Reviewed-by: Cary Clark <caryclark@google.com>
> Commit-Queue: Cary Clark <caryclark@google.com>
>

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

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

7 years agoRevert "move some of patheffect internals into private"
Mike Reed [Sat, 4 Mar 2017 19:42:31 +0000 (19:42 +0000)]
Revert "move some of patheffect internals into private"

This reverts commit 7067fc6224833941380729857ad865547bc88430.

Reason for revert: need to update android jni

Original change's description:
> move some of patheffect internals into private
>
> BUG=skia:
>
> Change-Id: I00da9d38f16fb20f31e025dd817c5d430466a1d0
> Reviewed-on: https://skia-review.googlesource.com/9236
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Mike Reed <reed@google.com>
>

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

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

7 years agomove some of patheffect internals into private
Mike Reed [Sat, 4 Mar 2017 02:57:41 +0000 (21:57 -0500)]
move some of patheffect internals into private

BUG=skia:

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

7 years agoRebase and fix chromium
Brian Osman [Sat, 4 Mar 2017 13:12:46 +0000 (08:12 -0500)]
Rebase and fix chromium

Combine texture provider and resource provider

Largely mechanical. Only three places that were calling createApprox
via texture provider (ie without flags), so that was simple.

BUG=skia:

Change-Id: I876367bcdc6a8db736deedab1028de1972015509
Reviewed-on: https://skia-review.googlesource.com/9176
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoRemove unnecessary use of GrGLIRect in GrRenderTargetOpList
Brian Salomon [Fri, 3 Mar 2017 20:07:55 +0000 (15:07 -0500)]
Remove unnecessary use of GrGLIRect in GrRenderTargetOpList

Change-Id: I47f3930a142f8958c03906a46a7245b5af8e80f7
Reviewed-on: https://skia-review.googlesource.com/9227
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
7 years agoRemove clip to bounds GrContextOption
Brian Salomon [Fri, 3 Mar 2017 19:37:38 +0000 (14:37 -0500)]
Remove clip to bounds GrContextOption

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

7 years agoGrTessellator: Implement a fast path in poly emission.
Stephen White [Fri, 3 Mar 2017 17:24:16 +0000 (12:24 -0500)]
GrTessellator: Implement a fast path in poly emission.

When there's a single triangle remaining in the monotone,
emit early and skip a convexity check.

BUG=skia:

Change-Id: I591acf4b7f567dbbf7681ba72181e578ca4623ec
Reviewed-on: https://skia-review.googlesource.com/8797
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoAdd Braswell bots.
Ben Wagner [Fri, 3 Mar 2017 20:12:25 +0000 (15:12 -0500)]
Add Braswell bots.

BUG=skia:6324
NOTRY=true

Change-Id: I5c8b1572f839efa0a010e1cec8026c34f72cb92a
Reviewed-on: https://skia-review.googlesource.com/9229
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>

7 years agoUse an exponential growth strategy for extra blocks.
Herb Derby [Fri, 3 Mar 2017 20:09:43 +0000 (15:09 -0500)]
Use an exponential growth strategy for extra blocks.

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

7 years agoRevert "Revert[2] "Remove SkDraw from device-draw methods, and enable device-centric...
Cary Clark [Fri, 3 Mar 2017 20:27:13 +0000 (20:27 +0000)]
Revert "Revert[2] "Remove SkDraw from device-draw methods, and enable device-centric clipping."""

This reverts commit cfaa63237b152ae216f1351207bce3ea9808814c.

Reason for revert: speculative revert to fix Google3

Original change's description:
> Revert[2] "Remove SkDraw from device-draw methods, and enable device-centric clipping.""
>
> passes new (augmented) CanvasClipType unittest
> fixed rasterclipstack::setnewsize
>
> This reverts commit ea5e676a7b75600edcde3912886486004ccd7626.
>
> BUG=skia:
>
> Change-Id: I004653e0f4d01454662f8516fccab0046486f273
> Reviewed-on: https://skia-review.googlesource.com/9185
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Mike Reed <reed@google.com>
>

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

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

7 years agoSkJumper: store_f32
Mike Klein [Fri, 3 Mar 2017 19:05:32 +0000 (14:05 -0500)]
SkJumper: store_f32

Change-Id: I4bc6d1a8787c540fd1a29274650d34392e56651c
Reviewed-on: https://skia-review.googlesource.com/9223
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoUpgrade Go in CIPD to 1.7.5
Joe Gregorio [Fri, 3 Mar 2017 18:57:39 +0000 (13:57 -0500)]
Upgrade Go in CIPD to 1.7.5

BUG=skia:

Change-Id: I70fadfa293387bec03a201ac986b3e1cba053ab6
Reviewed-on: https://skia-review.googlesource.com/9222
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
7 years agoRevert[2] "Remove SkDraw from device-draw methods, and enable device-centric clipping.""
Mike Reed [Fri, 3 Mar 2017 18:58:10 +0000 (13:58 -0500)]
Revert[2] "Remove SkDraw from device-draw methods, and enable device-centric clipping.""

passes new (augmented) CanvasClipType unittest
fixed rasterclipstack::setnewsize

This reverts commit ea5e676a7b75600edcde3912886486004ccd7626.

BUG=skia:

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

7 years agoRemove extract_comments in housekeeper bot.
Joe Gregorio [Fri, 3 Mar 2017 18:21:26 +0000 (13:21 -0500)]
Remove extract_comments in housekeeper bot.

BUG=skia:

Change-Id: I6bd745a03c9f8c06ed711839a4bda1db0693cf5a
Reviewed-on: https://skia-review.googlesource.com/9220
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>

7 years agoSwitch SkImageGenerator over to generating GrTextureProxies
Robert Phillips [Fri, 3 Mar 2017 16:10:18 +0000 (11:10 -0500)]
Switch SkImageGenerator over to generating GrTextureProxies

It does not seem irrational for generateTexture to always receive a valid GrContext. lockAsBitmap can do as it pleases.

This is split out of: https://skia-review.googlesource.com/c/8823/ (Remove GrFragmentProcessor-derived class' GrTexture-based ctors)

Change-Id: I8aebc813a8a3a7d694b7369c2c9810e2164fe16e
Reviewed-on: https://skia-review.googlesource.com/9191
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoRevert "Upgrade Go in CIPD to 1.7.5"
Cary Clark [Fri, 3 Mar 2017 17:34:15 +0000 (17:34 +0000)]
Revert "Upgrade Go in CIPD to 1.7.5"

This reverts commit 3fb5299febf37456408c81298bbf2092133cb4f3.

Reason for revert: speculative revert to see if it fixes housekeeping bot

Original change's description:
> Upgrade Go in CIPD to 1.7.5
>
> BUG=skia:
>
> Change-Id: I574c704a4c4bee90b26c1d73d17762ae8b8f55f6
> Reviewed-on: https://skia-review.googlesource.com/9192
> Commit-Queue: Joe Gregorio <jcgregorio@google.com>
> Reviewed-by: Ravi Mistry <rmistry@google.com>
>

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

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

7 years agoUpgrade Go in CIPD to 1.7.5
Joe Gregorio [Fri, 3 Mar 2017 15:55:10 +0000 (10:55 -0500)]
Upgrade Go in CIPD to 1.7.5

BUG=skia:

Change-Id: I574c704a4c4bee90b26c1d73d17762ae8b8f55f6
Reviewed-on: https://skia-review.googlesource.com/9192
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
7 years agoPut is_skia_standalone back a bit.
Mike Klein [Fri, 3 Mar 2017 15:55:02 +0000 (10:55 -0500)]
Put is_skia_standalone back a bit.

We do still need to know when we're in our GN environment or in another,
like Fuchsia's or Flutter's.

The places where we replaced is_skia_standalone with defined(ndk) still
look right to me as defined(ndk).

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Ubuntu-GCC-x86_64-Release-Flutter_Android

Change-Id: I5455014a8f4a350ac3a939097d042fd8cb4c32fa
Reviewed-on: https://skia-review.googlesource.com/9193
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoStrengthen is_official_build, update docs.
Mike Klein [Fri, 3 Mar 2017 14:21:30 +0000 (09:21 -0500)]
Strengthen is_official_build, update docs.

This makes is_official_build turn off all development targets and
features in Skia, including building third-party dependencies from
source.

This will intentionally break some external users, who will find
themselves no longer able to find third-party headers or link against
third-party libraries.  These users have been building with our testing
third-party dependencies unknowingly.  They'll need to either explicitly
turn back on building each dependency from source
(skia_use_system_foo=false) or disable that dependency entirely
(skia_use_foo=false).

is_skia_standalone is now basically !is_official_build, so I've
propagated that through, removing is_skia_standalone.  In a few places
we were using it as a stand-in for defined(ndk), so I've just written
defined(ndk) there.  Duh.

gn_to_bp:

    is_offical_build's new strength also makes gn_to_bp.py simpler to
    write.  In spirit, Android builds are official Skia builds that also
    build DM and nanobench.

    It seems that SkJumper (src/jumper/*) is (unintentionally) enabled
    on Android.  Switching to an is_official_build would have disabled
    that.  But as that accidental launch seems to have gone fine, I've
    kept it explicitly enabled.

    In the end, no changes to Android.bp or its SkUserConfig.h.

The -Mini builder no longer needs to explicitly disable tools.
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Ubuntu-Clang-x86_64-Release-Mini

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

7 years agoUse non-fatal errors for WIC decoding failures
Matt Sarett [Thu, 2 Mar 2017 17:07:46 +0000 (12:07 -0500)]
Use non-fatal errors for WIC decoding failures

This should fix flakiness on the Win 2k8 bots.

BUG=skia:

Change-Id: Ibdd33279a092172f0b154493f59790a8db9f58bd
Reviewed-on: https://skia-review.googlesource.com/9142
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agoDocumentation: detailed iOS
Hal Canary [Fri, 3 Mar 2017 13:29:18 +0000 (08:29 -0500)]
Documentation: detailed iOS

NOTRY=true
Change-Id: I24328509fc902f4f41198e249e82e88eda5dd21d
Reviewed-on: https://skia-review.googlesource.com/9189
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Hal Canary <halcanary@google.com>

7 years agoMake GrSurface::MakeDeferred return sk_sp<GrTextureProxy>
Robert Phillips [Thu, 2 Mar 2017 23:18:38 +0000 (18:18 -0500)]
Make GrSurface::MakeDeferred return sk_sp<GrTextureProxy>

This should make upcoming changes less tedious

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

7 years agoupdate cliptype test to exercise clipstack backend
Mike Reed [Fri, 3 Mar 2017 01:07:46 +0000 (20:07 -0500)]
update cliptype test to exercise clipstack backend

BUG=skia:

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

7 years agoGrTessellator: add a null-check for a clusterfuzz test case.
Stephen White [Thu, 2 Mar 2017 21:16:33 +0000 (16:16 -0500)]
GrTessellator: add a null-check for a clusterfuzz test case.

BUG=695696

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

7 years agoRelease resources if SkMallocPixelRef::NewWithProc fails.
Ben Wagner [Thu, 2 Mar 2017 22:33:21 +0000 (17:33 -0500)]
Release resources if SkMallocPixelRef::NewWithProc fails.

Change-Id: I29b96cd9f2d2311b4caae092102f501dbc6a4fe8
Reviewed-on: https://skia-review.googlesource.com/9182
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
7 years agoRevert "Use inline storage for SkEdgeBuilder."
Mike Klein [Thu, 2 Mar 2017 22:04:55 +0000 (22:04 +0000)]
Revert "Use inline storage for SkEdgeBuilder."

This reverts commit be32a432af7aab06ab1457cec35789da85b40bbe.

Reason for revert: Google3 stacks are smaller than you might hope.  "the frame size of 25584 bytes is larger than 16384 bytes; see http://go/big_stack_frame"

Original change's description:
> Use inline storage for SkEdgeBuilder.
>
> Change-Id: I06d9ee759a366d6c2c11341e15e671f5a1f87ae7
> Reviewed-on: https://skia-review.googlesource.com/9164
> Reviewed-by: Yuqian Li <liyuqian@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
>

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

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

7 years agoDon't mark the matrix-type as dirty just be cause we translate it.
Mike Reed [Thu, 2 Mar 2017 20:45:15 +0000 (15:45 -0500)]
Don't mark the matrix-type as dirty just be cause we translate it.

This speeds up simple mods to canvas, e.g.

save()
translate(...)
...
restore()

BUG=skia:

Change-Id: I4b872e7d3102fad21d9c17a275006f5576827d41
Reviewed-on: https://skia-review.googlesource.com/9169
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoRemove SkLiteDL::makeThreadsafe().
Mike Klein [Thu, 2 Mar 2017 20:26:33 +0000 (15:26 -0500)]
Remove SkLiteDL::makeThreadsafe().

It's not used, and removing it cuts a branch in DrawDrawable::draw().

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

7 years agoFuzzCanvas: fix drawVertices BUG=skia:6314
Hal Canary [Thu, 2 Mar 2017 20:27:23 +0000 (15:27 -0500)]
FuzzCanvas: fix drawVertices BUG=skia:6314

Change-Id: I5f55a0fc03d4fe780b35529df9eeb385639501f2
Reviewed-on: https://skia-review.googlesource.com/9173
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

7 years agoadd unittests for clip-state queries
Mike Reed [Thu, 2 Mar 2017 20:21:11 +0000 (15:21 -0500)]
add unittests for clip-state queries

BUG=skia:

Change-Id: I6f8d5a0e78c5b41caa6c6388f7f2ace050ed08ac
Reviewed-on: https://skia-review.googlesource.com/9171
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoUse GrSemaphore rather than GrFence for external texture data
Brian Osman [Thu, 2 Mar 2017 20:09:20 +0000 (15:09 -0500)]
Use GrSemaphore rather than GrFence for external texture data

BUG=skia:

Change-Id: I0d23eb9dcf5c01c71d3571ef97690af68b900807
Reviewed-on: https://skia-review.googlesource.com/9141
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
7 years agoUse the auto blitter alloc to build linear pipelines with.
Herb Derby [Thu, 2 Mar 2017 19:39:32 +0000 (14:39 -0500)]
Use the auto blitter alloc to build linear pipelines with.

TBR=mtklein@google.com

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

7 years agoSkJumper: use AVX2 mask loads and stores for U32
Mike Klein [Thu, 2 Mar 2017 19:08:36 +0000 (14:08 -0500)]
SkJumper: use AVX2 mask loads and stores for U32

SkRasterPipeline_f16:  63 -> 58  (8888+f16 loads, f16 store)
SkRasterPipeline_srgb: 96 -> 84  (2x 8888 loads, 8888 store)

PS3 has a simpler way to build the mask, in a uint64_t.
Timing is still roughlt the same.

Change-Id: Ie278611dff02281e5a0f3a57185050bbe852bff0
Reviewed-on: https://skia-review.googlesource.com/9165
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
7 years agofixed duplicate interface variable in SPIR-V output
Ethan Nicholas [Thu, 2 Mar 2017 19:33:31 +0000 (14:33 -0500)]
fixed duplicate interface variable in SPIR-V output

BUG=skia:

Change-Id: Iee6b8de83b8ee6ce9de910a12bd86042018d7965
Reviewed-on: https://skia-review.googlesource.com/9167
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>

7 years agoRevert "Remove SkDraw from device-draw methods, and enable device-centric clipping."
Mike Reed [Thu, 2 Mar 2017 20:22:35 +0000 (20:22 +0000)]
Revert "Remove SkDraw from device-draw methods, and enable device-centric clipping."

This reverts commit c77e33f73d3e86cfabf925d6f2e1166f81022575.

Reason for revert: breaks isClipRect
- this CL inspected the conservative clip for this, which is (by definition) a rect
- probably need to query the device for this info

Original change's description:
> Remove SkDraw from device-draw methods, and enable device-centric clipping.
>
> BUG=skia:6214
>
> Change-Id: I593900724310d09133ae4791ef68d38c43762fc2
> Reviewed-on: https://skia-review.googlesource.com/8806
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Mike Reed <reed@google.com>
>

TBR=bsalomon@google.com,halcanary@google.com,msarett@google.com,robertphillips@google.com,fmalita@chromium.org,reed@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:6214

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

7 years agoRefactor SkLiteDL to no longer extend SkDrawable.
Derek Sollenberger [Wed, 1 Mar 2017 20:33:23 +0000 (15:33 -0500)]
Refactor SkLiteDL to no longer extend SkDrawable.

Change-Id: Ieaa849bceba0e98e4c99491c721fe945a0694e68
Reviewed-on: https://skia-review.googlesource.com/9111
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Stan Iliev <stani@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>

7 years agoTell PDF on Mac when a font is a variation font.
Ben Wagner [Thu, 2 Mar 2017 18:31:16 +0000 (13:31 -0500)]
Tell PDF on Mac when a font is a variation font.

PDF needs to know when a font is a variation font so that it knows
it cannot just embed the typeface.

BUG=chromium:697916

Change-Id: I85091e444a235545f0f63fe131729c107bb664a0
Reviewed-on: https://skia-review.googlesource.com/9158
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>

7 years agoAdd MotoG4 bot.
Ben Wagner [Thu, 2 Mar 2017 17:43:06 +0000 (12:43 -0500)]
Add MotoG4 bot.

BUG=skia:
NOTRY=true

Change-Id: I987b1b1f2c739a8301923ac567f9a57dfb64dc97
Reviewed-on: https://skia-review.googlesource.com/9148
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>

7 years agoUse inline storage for SkEdgeBuilder.
Herb Derby [Thu, 2 Mar 2017 19:00:10 +0000 (14:00 -0500)]
Use inline storage for SkEdgeBuilder.

Change-Id: I06d9ee759a366d6c2c11341e15e671f5a1f87ae7
Reviewed-on: https://skia-review.googlesource.com/9164
Reviewed-by: Yuqian Li <liyuqian@google.com>
Commit-Queue: Herb Derby <herb@google.com>