platform/upstream/libSkiaSharp.git
8 years agoAdd Android viewer to GN
Jim Van Verth [Fri, 21 Oct 2016 14:58:52 +0000 (10:58 -0400)]
Add Android viewer to GN

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3761

Change-Id: If971e275ed377cd733d01f62622d408479632465
Reviewed-on: https://skia-review.googlesource.com/3761
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
8 years agoadd pipe to nanobench
Mike Reed [Fri, 21 Oct 2016 14:43:36 +0000 (10:43 -0400)]
add pipe to nanobench

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3801

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

8 years agoFix for Chrome MSAN
Matt Sarett [Fri, 21 Oct 2016 13:25:54 +0000 (09:25 -0400)]
Fix for Chrome MSAN

I believe that the complaints are occurring because the |a| vector
might be uninitialized where it is used here.  It doesn't actually
matter because we won't use or store that value - it's just a
placeholder.

But we need to make the bot happy.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3800

Change-Id: I1891da9d1d2708008e4606daebf9bb6f96e92fc0
Reviewed-on: https://skia-review.googlesource.com/3800
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
8 years agoRemove SkRRectsGaussianEdgeShader
Robert Phillips [Thu, 20 Oct 2016 17:20:45 +0000 (13:20 -0400)]
Remove SkRRectsGaussianEdgeShader

This class is no longer used.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3734

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

8 years ago[Sk4fGradient] Use infinity floats for clamp-mode extreme positions
fmalita [Fri, 21 Oct 2016 13:02:22 +0000 (06:02 -0700)]
[Sk4fGradient] Use infinity floats for clamp-mode extreme positions

In clamp mode, we use a couple of synthetic edges that are supposed to
extend to +/- infinity (-inf .. P0 and Pn .. inf).  Currently we use
SK_ScalarMin/Max, but these can be overrun with large/malicious inputs.

Use SK_ScalarInfinity/SK_ScalarNegativeInfinity instead, and tweak
compute_interval_props() to handle inf values gracefully.

BUG=skia:5835
R=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2441733002

Review-Url: https://chromiumcodereview.appspot.com/2441733002

8 years agoZero tail stack buffers.
Mike Klein [Thu, 20 Oct 2016 22:30:11 +0000 (18:30 -0400)]
Zero tail stack buffers.

MSAN and the no-SIMD bots have noticed the top lanes of the tail vectors are  not initialized.

As they were written it was faster to leave them unintialized, but as re-written here it's equal speed and now safe.

CQ_INCLUDE_TRYBOTS=master.client.skia:Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN-Trybot,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3790

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

8 years agoSkRasterPipeline_opts: split next() into next_body() and next_tail().
Mike Klein [Thu, 20 Oct 2016 22:05:23 +0000 (18:05 -0400)]
SkRasterPipeline_opts: split next() into next_body() and next_tail().

This may work around an Chrome/MSVC/PGO compiler crasher.
Even if not, it's harmless for performance, and arguably more readable.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3789

Change-Id: I0bf23f65d7832b9f43e275f85e7985fcd6b13b9f
Reviewed-on: https://skia-review.googlesource.com/3789
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
8 years agoSkScalerContext to use smart pointers.
bungeman [Thu, 20 Oct 2016 20:06:52 +0000 (16:06 -0400)]
SkScalerContext to use smart pointers.

CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot;master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN-Trybot

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

8 years agoSkRasterPipeline: memcpy-free tail code.
Mike Klein [Thu, 20 Oct 2016 20:20:46 +0000 (16:20 -0400)]
SkRasterPipeline: memcpy-free tail code.

We don't call the tail code nearly as often as the body code, but when we do and call memcpy(), we first have to vzeroupper back into the non-AVX world.  That does seem to slow things down considerably.  You wouldn't think it, but this gives a nice speed up (tested on Windows).

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3783

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

8 years agoremove 4 legacy flags (clients already updated)
Mike Reed [Thu, 20 Oct 2016 20:40:26 +0000 (16:40 -0400)]
remove 4 legacy flags (clients already updated)

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3785

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

8 years agoQuickly fix the forgotten forceRLE
liyuqian [Thu, 20 Oct 2016 21:01:52 +0000 (14:01 -0700)]
Quickly fix the forgotten forceRLE

BUG=skia:
TBR=reed@google.com,caryclark@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2436593004

Review-Url: https://chromiumcodereview.appspot.com/2436593004

8 years agoCache GrColorSpaceXforms
Brian Osman [Thu, 20 Oct 2016 19:34:06 +0000 (15:34 -0400)]
Cache GrColorSpaceXforms

Even with a modest cache, we're going to get nearly 100% hit rate
for typical usage scenarios. I'm hoping to avoid the special case
caching of sRGB -> destination, and just rely on the more general
mechanism.

Yes, this is yet-another cache class. I wanted to use one of many
that are laying around, but couldn't find a good fit. On the plus
side, it's not much code.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3726

Change-Id: I943be5c99f0d691a87ffe8c5bc3067a8eb491fc2
Reviewed-on: https://skia-review.googlesource.com/3726
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
8 years agoHash the gamut of XYZ color spaces, to speed up comparison
Brian Osman [Wed, 19 Oct 2016 18:56:07 +0000 (14:56 -0400)]
Hash the gamut of XYZ color spaces, to speed up comparison

Also going to use this to allow caching of GrColorSpaceXforms

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3670

Change-Id: I56ed2dcbdddc22046263f56d68f2d6aea55547c8
Reviewed-on: https://skia-review.googlesource.com/3670
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
8 years agoTurn off buffer security checking in Release builds.
Mike Klein [Thu, 20 Oct 2016 19:45:02 +0000 (15:45 -0400)]
Turn off buffer security checking in Release builds.

I'm seeing /GS's _security_check_cookie() show up as a signficant piece of time when profiling.  That's mostly just annoying noise.  We generally use our Release builds for performance testing and Debug for correctness, so it seems like a fair thing to disable in Release builds... it's a sort of ASAN thing, which we only do in Debug on other platforms.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3782

Change-Id: I9b3cf4c5cf943fc2549f5bf91a1f6f7e41733e2c
Reviewed-on: https://skia-review.googlesource.com/3782
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Ben Wagner <bungeman@google.com>
8 years agoAdd query to imagegenerator if it can efficiently generate a texture
Mike Reed [Thu, 20 Oct 2016 19:37:41 +0000 (15:37 -0400)]
Add query to imagegenerator if it can efficiently generate a texture

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3780

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

8 years agofix more fuzz, carsvg
caryclark [Thu, 20 Oct 2016 19:36:16 +0000 (12:36 -0700)]
fix more fuzz, carsvg

Fix a few kevin-generated fuzzers.

Remove an assert triggered by
carsvg when thrown through the
distance field stuff.

TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2427253005

Review-Url: https://chromiumcodereview.appspot.com/2427253005

8 years agoAdd retries to the InfraTests bot's "update go pkgs" step
borenet [Thu, 20 Oct 2016 18:38:30 +0000 (11:38 -0700)]
Add retries to the InfraTests bot's "update go pkgs" step

BUG=skia:5874
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2437143002

Review-Url: https://chromiumcodereview.appspot.com/2437143002

8 years agofix more chrome asan fuzzer failures
caryclark [Thu, 20 Oct 2016 18:34:10 +0000 (11:34 -0700)]
fix more chrome asan fuzzer failures

Small change to gracefully quit
when fuzzer values cause pathops
to fail.

TBR=reed@google.com
BUG=657411, 657559
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2426393004

Review-Url: https://chromiumcodereview.appspot.com/2426393004

8 years agoMake SkFixedRound/Ceil/FloorToFixed as inline func
liyuqian [Thu, 20 Oct 2016 18:23:09 +0000 (11:23 -0700)]
Make SkFixedRound/Ceil/FloorToFixed as inline func

The macros that we were using will return unsigned int32 instead of
signed int32 because of the last 0xFFFF0000 mask. That may bring
problems if we right shift that result.

Special thanks to mtklein@google.com for helping me find out this issue.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2433233003

Review-Url: https://chromiumcodereview.appspot.com/2433233003

8 years agoAdd missing sse41::run_pipeline.
Mike Klein [Thu, 20 Oct 2016 17:37:12 +0000 (13:37 -0400)]
Add missing sse41::run_pipeline.

In practice this doesn't matter (we'll use sse2::run_pipeline) but the UBSAN bot caught me.

TBR=herb@google.com

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3736

Change-Id: Ib40ee4a8ebf274bbc10a78a80e7b1ad06cf644e5
Reviewed-on: https://skia-review.googlesource.com/3736
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
8 years agoUse Analytic AA in SkAAClip.
liyuqian [Thu, 20 Oct 2016 18:04:39 +0000 (11:04 -0700)]
Use Analytic AA in SkAAClip.

This will fix some Chrome ref tests.

The main issue here is that the SkAAClip requires: (1) we blit in order, and (2) we must forceRLE.

Note that this still depends on the global gSkUseAnalyticAA to turn on the Analytic AA.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2430343003

Review-Url: https://chromiumcodereview.appspot.com/2430343003

8 years agogen_tasks.go: Use new helpers from specs package
borenet [Thu, 20 Oct 2016 18:04:31 +0000 (11:04 -0700)]
gen_tasks.go: Use new helpers from specs package

BUG=skia:5626
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2438043002

Review-Url: https://chromiumcodereview.appspot.com/2438043002

8 years agoTurn on /OPT:REF and /OPT:ICF too.
Mike Klein [Thu, 20 Oct 2016 17:52:38 +0000 (13:52 -0400)]
Turn on /OPT:REF and /OPT:ICF too.

These two together shave another 5MB off dm.exe, from 16MB -> 11MB.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3738

Change-Id: Id216867e0ad5bc115fbd4006095860dff9204947
Reviewed-on: https://skia-review.googlesource.com/3738
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Ben Wagner <bungeman@google.com>
8 years agoCompile for Windows with /Zc:inline.
Mike Klein [Thu, 20 Oct 2016 17:34:18 +0000 (13:34 -0400)]
Compile for Windows with /Zc:inline.

By default, MSVC generates standalone versions of all functions, including static inline functions that are only inlined.  Those standalone versions are dead code.  This /Zc:inline flag makes MSVC behave like all the other compilers, omitting those standalone functions.  Chrome builds with this flag.

This CL cuts dm.exe and nanobench.exe each down by about 3MB, 19->16MB for DM and 15MB->12MB for nanobench.  This shouldn't affect runtime speed, and didn't signficantly change clean build time on my Z840 (~90s either way).

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3735

Change-Id: Ibd2a80337fcefc3f4eaf4335ea4e95a80bb4fddb
Reviewed-on: https://skia-review.googlesource.com/3735
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Ben Wagner <bungeman@google.com>
8 years agoFixed potential read-out-of-bounds issue in ICC profile loading
raftias [Thu, 20 Oct 2016 17:38:58 +0000 (10:38 -0700)]
Fixed potential read-out-of-bounds issue in ICC profile loading

For 8-bit precision color LUT in A2B0 ICC color space profiles
it was skipping every 2nd CLUT value and then reading past the end
of the CLUT data table. Now it properly increments through
8-bit precision color LUT tables in profiles.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2434563007

Review-Url: https://chromiumcodereview.appspot.com/2434563007

8 years agoSafely handle unsupported color xforms in SkCodec
Matt Sarett [Thu, 20 Oct 2016 16:35:23 +0000 (12:35 -0400)]
Safely handle unsupported color xforms in SkCodec

(1) The transformation code *should* support any src SkColorSpace
that we successfully parse.  This is agreed upon internally and
by clients.  The fact that we currently don't is just a bug...
(2) We cannot and will not support all SkColorSpaces as dsts.

So if we fail to make a SkColorSpaceXform, we should assume that
it was caused by a bad dst color space.  The correct response in
this case is to return kInvalidConversion.  I've rewritten the CL
to do this.

The fact that weird src spaces will sometimes trigger a
kInvalidConversion is just a bug that is being actively worked on.

TBR=reed@google.com

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3661

Change-Id: Iac2b45120507ec71b1b3d555c61931f7348dad9e
Reviewed-on: https://skia-review.googlesource.com/3661
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Robert Aftias <raftias@google.com>
8 years agoremove unneeded legacy flags
Mike Reed [Thu, 20 Oct 2016 16:51:44 +0000 (12:51 -0400)]
remove unneeded legacy flags

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3732

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

8 years agofix debug version of cubicpair detected by asan
caryclark [Thu, 20 Oct 2016 17:11:27 +0000 (10:11 -0700)]
fix debug version of cubicpair detected by asan

TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2435063002

Review-Url: https://chromiumcodereview.appspot.com/2435063002

8 years agoremove some legacy flags for g3
Mike Reed [Wed, 19 Oct 2016 19:06:34 +0000 (15:06 -0400)]
remove some legacy flags for g3

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3672

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

8 years agoCompile Release builds with -momit-leaf-frame-pointer.
Mike Klein [Thu, 20 Oct 2016 02:24:10 +0000 (22:24 -0400)]
Compile Release builds with -momit-leaf-frame-pointer.

Unlike -fomit-frame-pointer, this doesn't make debugging or profiling any more difficult, as it only applies to leaves.  It will make our code (negligibly) smaller and (negligibly) faster.

Mostly I just find it easier to read the disassembly without all the rbp gymnastics getting in the way.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3700

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

8 years agoSkRasterPipeline refactor
Mike Klein [Thu, 20 Oct 2016 01:05:17 +0000 (21:05 -0400)]
SkRasterPipeline refactor

  - Give body and tail functions separate types.  This frees a register in body functions, especially important for Windows.

  - Fill out default, SSE4.1, and HSW versions of all functions.  This means we don't have to mess around with SkNf_abi... all functions come from the same compilation unit where SkNf is a single consistent type.

  - Move Stage::next() into SkRasterPipeline_opts.h as a static inline function.

  - Remove Stage::ctx() entirely... fCtx is literally the same thing.

This is a step along the way toward building the entire pipeline in src/opts, removing the need for all the stages to be functions living in SkOpts.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3680
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot,Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot

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

8 years agoFix bug in raster implementation of SkRRectsGaussianEdgeMaskFilter
Robert Phillips [Thu, 20 Oct 2016 15:58:40 +0000 (11:58 -0400)]
Fix bug in raster implementation of SkRRectsGaussianEdgeMaskFilter

The bug was the raster version didn't correctly handle the CTM.

This CL also adds a way to test the behavior (by translating the
reveal GM around in SampleApp)

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3729

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

8 years agore-re-land of skslc now automatically turns on derivatives support
ethannicholas [Thu, 20 Oct 2016 16:54:00 +0000 (09:54 -0700)]
re-re-land of skslc now automatically turns on derivatives support

Only change from last attempt is putting the call to shaderDerivativeExtensionString behind a check for shaderDerivativeSupport to avoid a spurious assertion failure.

TBR=benjaminwagner@google.com

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2437063002

Review-Url: https://chromiumcodereview.appspot.com/2437063002

8 years agoRun ANGLE in GL mode on test bots
Brian Salomon [Thu, 20 Oct 2016 14:14:45 +0000 (10:14 -0400)]
Run ANGLE in GL mode on test bots

CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Win-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE-Trybot

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3724

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

8 years agofix fuzzers
caryclark [Thu, 20 Oct 2016 15:32:18 +0000 (08:32 -0700)]
fix fuzzers

Many old pathops-related fuzz failures have built up while
the codebase was under a state a flux. Now that the code
is stable, address these failures.

Most of the CL plumbs the debug global state to downstream
routines so that, if the data is not trusted (ala fuzzed)
the function can safely exit without asserting.

TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2426173002

Review-Url: https://chromiumcodereview.appspot.com/2426173002

8 years agouse 'real' SkImageDeserializer
Mike Reed [Thu, 20 Oct 2016 14:39:22 +0000 (10:39 -0400)]
use 'real' SkImageDeserializer

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3727

Change-Id: Ic07ea6bd2756f1be08e80075c236a70ce6c08a3b
TBR=mtklein
Reviewed-on: https://skia-review.googlesource.com/3727
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

8 years agoViewer on Mac.
Mike Klein [Thu, 20 Oct 2016 14:17:47 +0000 (10:17 -0400)]
Viewer on Mac.

  - Support ObjC / ObjC++
  - Build SDL on Mac.
  - Build viewer on Mac.

Patched from Jim's CL.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3760

Change-Id: I12663f2ed2969e22f51aefed560fbc22b2524167
Reviewed-on: https://skia-review.googlesource.com/3760
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

8 years agoSlim down builder CIPD packages.
Mike Klein [Thu, 20 Oct 2016 12:51:17 +0000 (08:51 -0400)]
Slim down builder CIPD packages.

The Android builders don't need the clang_linux asset.
I don't think anything needs the android_sdk asset.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3740

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

8 years agoAdd SkRRectsGaussianEdgeMaskFilter
Robert Phillips [Thu, 20 Oct 2016 13:40:55 +0000 (09:40 -0400)]
Add SkRRectsGaussianEdgeMaskFilter

SkRRectsGaussianEdgeShader will be removed once the usage of the
MaskFilter flavor has been propagated to Android

I will complete the raster implementation in a follow up CL.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3632

Change-Id: I42470b17308582b040a5db1a7283c3d717405345
Reviewed-on: https://skia-review.googlesource.com/3632
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
8 years agoClass delete call unsized delete when size not known.
Ben Wagner [Wed, 19 Oct 2016 21:15:44 +0000 (17:15 -0400)]
Class delete call unsized delete when size not known.

Some classes directly call global operator new to reserve space in
addition to the space the class will occupy. These clases must be
deleted with the unsized global operator new. If a build is configured
such that sized global operator new is called from a delete expression,
this must be overridden by such classes.

TBR=reed
Only affects private bits of SkData.

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

8 years agoRevert "Revert "remove unneeded flags for android""
reed [Wed, 19 Oct 2016 21:38:05 +0000 (14:38 -0700)]
Revert "Revert "remove unneeded flags for android""

This reverts commit bbe17a66705aff6f34a22adc0c12883dcb6161b3.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2426343005

Review-Url: https://chromiumcodereview.appspot.com/2426343005

8 years agoMore explicit body/tail function versioning.
Mike Klein [Wed, 19 Oct 2016 18:53:13 +0000 (14:53 -0400)]
More explicit body/tail function versioning.

MSVC was not picking up that tail==0 in the non-_tail versions of the kernel functions in SkRasterPipeline_opts.h.  This passes through a template bool parameter to convey the same message.

This makes the body code a bit smaller and faster on MSVC now by removing the tail>0 check and code.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3669

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

8 years agoTry again with SkOpts_hsw and 8x pipelines, attempt 2.
Mike Klein [Wed, 19 Oct 2016 20:45:16 +0000 (16:45 -0400)]
Try again with SkOpts_hsw and 8x pipelines, attempt 2.

Originally reviewed: https://skia-review.googlesource.com/3667

This time around, don't forget swap_src_dst.

CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3676

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

8 years agoRevert "Try again with SkOpts_hsw and 8x pipelines."
Mike Klein [Wed, 19 Oct 2016 20:42:14 +0000 (20:42 +0000)]
Revert "Try again with SkOpts_hsw and 8x pipelines."

This reverts commit 4f02ce7995554d899cdde2b7d82f600fc8017fcc.

Reason for revert: missed a stage

TBR=mtklein@chromium.org,msarett@google.com,herb@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I1dc1229183d67fe72977e492977a97b19dc630d2
Reviewed-on: https://skia-review.googlesource.com/3675
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
8 years agoTry again with SkOpts_hsw and 8x pipelines.
Mike Klein [Wed, 19 Oct 2016 18:15:15 +0000 (14:15 -0400)]
Try again with SkOpts_hsw and 8x pipelines.

All SkNx are now in anonymous namespaces and all their methods are force-inlined.  We should not have any ODR problems.

This is still a near 2x speedup, more so for f16.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3667

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

8 years agoSubtract start_coord instead of adding it
scroggo [Wed, 19 Oct 2016 19:56:46 +0000 (12:56 -0700)]
Subtract start_coord instead of adding it

crrev.com/2420843003 (DIFFERENT ISSUE) introduced some changes in
sampled images. (I already corrected the problem for interlaced PNGs
in crrev.com/2424353003.)

When deciding whether a row is needed, we need to subtract the starting
coordinate, similar to how we subtracted fFirstRow in SkPngCodec.

This should "fix" the remaining untriaged images in Gold (i.e. we will
go back to producing the original image).
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2440563002

Review-Url: https://chromiumcodereview.appspot.com/2440563002

8 years agoRecipe fix for buildbotless bots
borenet [Wed, 19 Oct 2016 19:56:43 +0000 (12:56 -0700)]
Recipe fix for buildbotless bots

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2435803003

Review-Url: https://chromiumcodereview.appspot.com/2435803003

8 years agoDefine SK_CPU_SSE_LEVEL on Windows builds.
Mike Klein [Wed, 19 Oct 2016 17:39:13 +0000 (13:39 -0400)]
Define SK_CPU_SSE_LEVEL on Windows builds.

We check this define to know which intrinsics we can call safely.  The -msse flags set it for us on non-MSVC, but MSVC has no such switch.  We do this in GYP (and Chrome's GN) too.  No need for any defines on :avx or :hsw targets... the /arch:AVX and /arch:AVX2 do set SK_CPU_SSE_LEVEL for us.

Most directly, this means things like Sk4f::thenElse() will now use blendps when compiled into SkOpts_sse41.cpp.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3666

Change-Id: Ie80a8b8e5544250b45cfe51c40604fade06b3ef9
Reviewed-on: https://skia-review.googlesource.com/3666
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Matt Sarett <msarett@google.com>
8 years agoMake monobench more usable on Windows.
Mike Klein [Wed, 19 Oct 2016 17:27:07 +0000 (13:27 -0400)]
Make monobench more usable on Windows.

All small stuff:
  - printf doesn't go to the Visual Studio console, SkDebugf does;
  - the Windows console can't show an ellipsis;
  - overwriting the console line is a little different on Windows.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3664

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

8 years agoCorrect a small mistake in SkPath::build_arc_conics
xidachen [Wed, 19 Oct 2016 17:24:28 +0000 (10:24 -0700)]
Correct a small mistake in SkPath::build_arc_conics

In this function, when count is 0, it maps the dst point to start, where
it should really be stop. A test case is also added.

In the test case, it should be drawing three lines, without the change in
SkPath class, it will draw 2 lines only with the top horizontal line
missing because it maps the dst point to the start point, and hence
the horizontal line is not drawn.

BUG=640031
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2409983004

Review-Url: https://chromiumcodereview.appspot.com/2409983004

8 years agoAdd key params for buildbotless bots in DM/nanobench
borenet [Wed, 19 Oct 2016 17:13:32 +0000 (10:13 -0700)]
Add key params for buildbotless bots in DM/nanobench

BUG=skia:5626
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2424793005

Review-Url: https://chromiumcodereview.appspot.com/2424793005

8 years agoRemove shaderc DEPS.
Mike Klein [Mon, 17 Oct 2016 17:14:22 +0000 (13:14 -0400)]
Remove shaderc DEPS.

Was just perusing DEPS and I realized shaderc is probably no longer needed.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3561

Change-Id: I054a424b26e51dbfee77dbe79e1e175399627902
Reviewed-on: https://skia-review.googlesource.com/3561
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Greg Daniel <egdaniel@google.com>
8 years agodisable packed texture tests on TSAN bot
Mike Klein [Wed, 19 Oct 2016 16:18:01 +0000 (12:18 -0400)]
disable packed texture tests on TSAN bot

https://build.chromium.org/p/client.skia/builders/Test-Ubuntu-Clang-Golo-GPU-GT610-x86_64-Release-TSAN
is flaky.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3662

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

8 years agoSupport inline uploads in Vulkan
Greg Daniel [Tue, 18 Oct 2016 15:48:51 +0000 (11:48 -0400)]
Support inline uploads in Vulkan

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3586

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

8 years agoRemove custom NINJA_STATUS.
Mike Klein [Tue, 18 Oct 2016 18:51:58 +0000 (14:51 -0400)]
Remove custom NINJA_STATUS.

I think the Ninja [nnn/mmm] counts started going off when we landed this.
I'd rather have the [nnn/mmm] be correct than have the timestamps.

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

8 years agoAdd helper to create random AsFPArgs for Ganesh unit tests
Brian Osman [Wed, 19 Oct 2016 15:12:09 +0000 (11:12 -0400)]
Add helper to create random AsFPArgs for Ganesh unit tests

Reduces copy-paste and eases maintenance. I'll be adding another field to
AsFPArgs soon, and this is going to streamline that change.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3639

Change-Id: I6372ed5dce50a5ba9d73039bd4714e34502a1f75
Reviewed-on: https://skia-review.googlesource.com/3639
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
8 years agoRoll recipe DEPS
borenet [Wed, 19 Oct 2016 15:58:29 +0000 (08:58 -0700)]
Roll recipe DEPS

This is for https://codereview.chromium.org/2426013002/ ("Add Swarming
magic environment variables to ENV_WHITELIST")

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2438553002

Review-Url: https://chromiumcodereview.appspot.com/2438553002

8 years agoSkNx: use SK_ALWAYS_INLINE thoroughly.
Mike Klein [Wed, 19 Oct 2016 13:21:11 +0000 (09:21 -0400)]
SkNx: use SK_ALWAYS_INLINE thoroughly.

MSVC's not so good at inlining.  So tell it where to.  It won't hurt the others.

This has nothing directly to do with ODR safety.  The anonymous namespaces and 'static' on freestanding functions provide the correctness we need there.  But this change can help to mechanically prevent the sort of problems ODR violations can lead to.

I may follow up by extending this strategy further to Sk4px, which is used to implement a lot of the legacy xfermodes.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3608
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

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

8 years agoSkDescriptors to be held in unique_ptr.
bungeman [Tue, 18 Oct 2016 12:03:42 +0000 (08:03 -0400)]
SkDescriptors to be held in unique_ptr.

This also removes the class operator new override along with
directly calling malloc in SkData, since it has a similar requirements.

CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot;master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN-Trybot

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

8 years agoRevert of Generate Signed Distance Field directly from vector path (patchset #18...
benjaminwagner [Wed, 19 Oct 2016 11:43:03 +0000 (04:43 -0700)]
Revert of Generate Signed Distance Field directly from vector path (patchset #18 id:340001 of https://chromiumcodereview.appspot.com/1643143002/ )

Reason for revert:
Multiple assertion failures on multiple platforms:
../../../src/gpu/GrDistanceFieldGenFromVector.cpp:806: fatal error: "assert(((col != width - 1) || (windingNumber == 0)) && "Winding number should be zero at the end of a scan line.")"
https://luci-milo.appspot.com/swarming/task/31f5353caf8cc410
https://luci-milo.appspot.com/swarming/task/31f567789cbcec10

c:\b\work\skia\src\pathops\skopangle.cpp:165: fatal error: "assert(lrOpposite != trOpposite)"
https://luci-milo.appspot.com/swarming/task/31f570d74f750310

Original issue's description:
> 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

TBR=bsalomon@google.com,jvanverth@google.com,mtklein@google.com,wasim.abbas@arm.com,caryclark@google.com,joel.liang@arm.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review-Url: https://chromiumcodereview.appspot.com/2435753002

8 years agoGenerate Signed Distance Field directly from vector path
joel.liang [Wed, 19 Oct 2016 09:50:03 +0000 (02:50 -0700)]
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
Review-Url: https://chromiumcodereview.appspot.com/1643143002

8 years agoimage serialize/deserialize callbacks in pipe
Mike Reed [Tue, 18 Oct 2016 23:34:08 +0000 (19:34 -0400)]
image serialize/deserialize callbacks in pipe

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3607

Change-Id: I403fec72cacfc6a821f676f0afef390c89749a8b
Reviewed-on: https://skia-review.googlesource.com/3607
Commit-Queue: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
8 years agoMake ANGLE bot only run ANGLE configs
Brian Salomon [Tue, 18 Oct 2016 17:36:32 +0000 (13:36 -0400)]
Make ANGLE bot only run ANGLE configs

CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Win-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE-Trybot

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3597

Change-Id: Id948caa1f28f415c453895fd30ff032bcadbb3d3
Reviewed-on: https://skia-review.googlesource.com/3597
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
8 years agoRevert "remove unneeded flags for android"
Greg Daniel [Tue, 18 Oct 2016 20:48:18 +0000 (20:48 +0000)]
Revert "remove unneeded flags for android"

This reverts commit f00decf64422fce118703f046b135a542c013857.

Reason for revert: Breaking master-skia cause of SK_SUPPORT_LEGACY_PICTURE_PTR

TBR=rmistry@google.com,scroggo@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Ib33b8fafeee847e0ef92e5865e50c2070ba3939c
Reviewed-on: https://skia-review.googlesource.com/3624
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
8 years agoExclude viewer from NoGpu bots
Brian Osman [Tue, 18 Oct 2016 20:05:25 +0000 (16:05 -0400)]
Exclude viewer from NoGpu bots

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3623

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

8 years agoGN builds viewer on Linux, too
Brian Osman [Tue, 18 Oct 2016 19:33:53 +0000 (15:33 -0400)]
GN builds viewer on Linux, too

BUG=skia:

Change-Id: Ia0c10db49905fc5a3bdf424c38576e1a6cf09ecf
Reviewed-on: https://skia-review.googlesource.com/3606
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>

8 years agoremove unneeded flags for android
Mike Reed [Tue, 18 Oct 2016 18:59:13 +0000 (14:59 -0400)]
remove unneeded flags for android

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3595

Change-Id: I74bd11b2324c3e1ab07e5f67b01b90291deb879e
NOTREECHECKS=True
NOTRY=True

Change-Id: I74bd11b2324c3e1ab07e5f67b01b90291deb879e
Reviewed-on: https://skia-review.googlesource.com/3595
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>

8 years agoAdd testing for ANGLE msaa on bots
Brian Salomon [Tue, 18 Oct 2016 15:28:20 +0000 (11:28 -0400)]
Add testing for ANGLE msaa on bots

CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Win-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE-Trybot

BUG=skia:5804

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3587

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

8 years agoFix star artifact in SkRRectsGaussianEdgeShader
Robert Phillips [Tue, 18 Oct 2016 16:58:29 +0000 (12:58 -0400)]
Fix star artifact in SkRRectsGaussianEdgeShader

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3360

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

8 years agoViewer builds (for Windows) with GN
Brian Osman [Tue, 18 Oct 2016 18:42:44 +0000 (14:42 -0400)]
Viewer builds (for Windows) with GN

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3599

Change-Id: Id6a142f90f544bef266d78e385f22e17288d5064
Reviewed-on: https://skia-review.googlesource.com/3599
Reviewed-by: Mike Klein <mtklein@google.com>
8 years agoAdd SKSL fuzzer
kjlubick [Tue, 18 Oct 2016 17:06:24 +0000 (10:06 -0700)]
Add SKSL fuzzer

BUG=skia:5490
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2418763004

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

8 years agoRefactored SkColorSpace and added in a Lab PCS GM
raftias [Tue, 18 Oct 2016 17:02:51 +0000 (10:02 -0700)]
Refactored SkColorSpace and added in a Lab PCS GM

The refactoring breaks off A2B0 tag support into a separate
subclass of SkColorSpace_Base, while keeping the current
(besides CLUT) functionality in a XYZTRC subclass.

ICC profile loading is now aware of this and creates the A2B0
subclass when SkColorSpace::NewICC() is called on a profile
in need of the A2B0 functionality.

The LabPCSDemo GM loads a .icc profile containing a LAB PCS and
then runs a Lab->XYZ conversion on an image using it so we can
display it and test out the A2B0 SkColorSpace functionality,
sans a/b/m-curves, as well as the Lab->XYZ conversion code.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2389983002

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

8 years agoSome GN-related recipe cleanup.
Mike Klein [Mon, 17 Oct 2016 18:36:18 +0000 (14:36 -0400)]
Some GN-related recipe cleanup.

All our bots but the iOS ones are on GN now.  This cleans up a bunch of GYP and other obsolete stuff.

  - Nothing's using default_flavor.py any more except as a base class.
  - There are no -CMake, -Shared or -VisualBench bots anymore.
  - Only the iOS bots care about GYP_DEFINES.

You'll see the PDFium bot's GYP_DEFINES change, but that doesn't matter... it's using PDFium's own (GN) build system, and it ignores GYP_DEFINES.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3567

Change-Id: I699e10f013ea77df4dcaa1cb559c51c5bf55dfdb
Reviewed-on: https://skia-review.googlesource.com/3567
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
8 years agoFix ASAN bot.
Mike Klein [Tue, 18 Oct 2016 16:11:07 +0000 (12:11 -0400)]
Fix ASAN bot.

TBR=caryclark@google.com

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3591

Change-Id: Ib80ee9c5a3277de64bcde85383ad712956118295
Reviewed-on: https://skia-review.googlesource.com/3591
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
8 years agoRefactor GrVkGpuCommandBuffer to handle multiple GrVkCommandBuffers.
Greg Daniel [Tue, 18 Oct 2016 14:33:25 +0000 (10:33 -0400)]
Refactor GrVkGpuCommandBuffer to handle multiple GrVkCommandBuffers.

This CL is a pre CL to fix some issues where we will need a GpuCB to
internally have multiple commandbuffers that it submits. Because of
this, I need to move the bounds calculations down into the VkGpuCB
since we need to know the bounds for each sub commandbuffer and not
just entire set of commands. In part this is good since GL actually
never needed the calculations so it saves some work there.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3142

Change-Id: Ied918765da3630aa6d87e29ccce6c883b96c4ead
Reviewed-on: https://skia-review.googlesource.com/3142
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
8 years agoskpbench: suppot Nexus 6P
csmartdalton [Tue, 18 Oct 2016 16:19:50 +0000 (09:19 -0700)]
skpbench: suppot Nexus 6P

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2415033002

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

8 years agoConsider the start_coord in interlaced PNG
scroggo [Tue, 18 Oct 2016 16:14:11 +0000 (09:14 -0700)]
Consider the start_coord in interlaced PNG

crrev.com/2420843003 (DIFFERENT ISSUE) resulted in a slight difference
in Gold for interlaced PNGs. The new images appeared to have slid down
slightly, implying that we sampled pixels higher (earlier) in the
image.

It turns out we were not truly taking get_start_coord into account.
This CL initializes the srcRow to consider get_start_coord, and should
fix the problem/difference.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2424353003

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

8 years agofix -NoGPU build bots.
Mike Klein [Tue, 18 Oct 2016 15:46:22 +0000 (11:46 -0400)]
fix -NoGPU build bots.

TBR=caryclark@google.com

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3589

Change-Id: I4bf4a6b812a8284f739c86d03f334521e896a1cf
Reviewed-on: https://skia-review.googlesource.com/3589
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
8 years agoRun correctness tests on ANGLE bots using d3d9 backend
Brian Salomon [Tue, 18 Oct 2016 15:23:23 +0000 (11:23 -0400)]
Run correctness tests on ANGLE bots using d3d9 backend

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3584

CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Win-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE-Trybot

Change-Id: Ic70002d13261d22d374f0fd29e2f8dd3c783d552
Reviewed-on: https://skia-review.googlesource.com/3584
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
8 years agoRevert "re-land of skslc now automatically turns on derivatives support"
Mike Klein [Tue, 18 Oct 2016 15:48:46 +0000 (15:48 +0000)]
Revert "re-land of skslc now automatically turns on derivatives support"

This reverts commit d7d1997643db3b9b5caaaac235c0e2cd0fa23ec2.

This breaks the Chromium roll (it did last time it landed too).
https://codereview.chromium.org/2429853002

Please gate your next attempt on at least one of linux_android_rel_ng, linux_chromium_rel_ng, or mac_chromium_rel_ng.

TBR=benjaminwagner@google.com,ethannicholas@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I999d4af70a5704b8990f3cd7d145eabff57646f5
Reviewed-on: https://skia-review.googlesource.com/3590
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
8 years agobreak ambiguous angle sorting loop
caryclark [Tue, 18 Oct 2016 14:59:44 +0000 (07:59 -0700)]
break ambiguous angle sorting loop

A pair of cubics may be difficult to sort if the tangents suggest
one sort but the midpoints suggest a different one. When in this
gray area, and when the cumulative sort of all the angles fails to
resolve, reverse the sort to break the tie.

Before, when tiger8 was run through the signed distance field
generated directly from the path data, the simplify call might
hang since the angle could not be resolved. If the endless loop
is detected, and if there is no tie to break, just fail instead.

TBR=reed@google.com
BUG=skia:5131
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2426753002

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

8 years agoAdd support for ANGLE MSAA framebuffer extensions.
Brian Salomon [Tue, 18 Oct 2016 14:21:43 +0000 (10:21 -0400)]
Add support for ANGLE MSAA framebuffer extensions.

BUG=skia:5804

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3505

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

8 years agore-land of skslc now automatically turns on derivatives support
Ethan Nicholas [Tue, 18 Oct 2016 13:09:49 +0000 (09:09 -0400)]
re-land of skslc now automatically turns on derivatives support

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3602

Change-Id: I822fc23f7d4eac76d5059412706117818f3738f0
Reviewed-on: https://skia-review.googlesource.com/3602
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>

8 years agoMake SkColorSpaceXform an SK_API
Matt Sarett [Tue, 18 Oct 2016 14:21:45 +0000 (10:21 -0400)]
Make SkColorSpaceXform an SK_API

TBR=reed@google.com
BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3585

Change-Id: I8efaf7c46e0d600bb1bb92e39014db8c4a8d25d1
Reviewed-on: https://skia-review.googlesource.com/3585
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
8 years agoRevert "skslc now automatically turns on derivatives support"
Ethan Nicholas [Tue, 18 Oct 2016 13:00:03 +0000 (13:00 +0000)]
Revert "skslc now automatically turns on derivatives support"

This reverts commit 311742bd0eac6fad150bf8f0a4e2809679464e47.

Reason for revert: Android try failure

Change-Id: I6e92b49df1c8f692da947b277067b9003a9367d0
Reviewed-on: https://skia-review.googlesource.com/3600
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
8 years agoInclude 4f variants of random gradients during testing
Brian Osman [Mon, 17 Oct 2016 16:48:13 +0000 (12:48 -0400)]
Include 4f variants of random gradients during testing

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3538

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

8 years agoUse legacy color filter API when doing legacy paint conversion
Brian Osman [Mon, 17 Oct 2016 20:54:49 +0000 (16:54 -0400)]
Use legacy color filter API when doing legacy paint conversion

Matt fixed mode color filter so that the 4f filter uses a linearized
version of the stored color. This restores previous behavior, where legacy
devices are doing everything in sRGB space.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3581

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

8 years agoFix SKP version in tasks.json, make upload_skps.py update tasks.json
borenet [Tue, 18 Oct 2016 12:20:26 +0000 (05:20 -0700)]
Fix SKP version in tasks.json, make upload_skps.py update tasks.json

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2426863003

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

8 years agoskslc now automatically turns on derivatives support
Ethan Nicholas [Tue, 18 Oct 2016 12:16:41 +0000 (08:16 -0400)]
skslc now automatically turns on derivatives support

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3569

Change-Id: I211f4a80ced951a0d2f29763f85fe75a5daccff7
Reviewed-on: https://skia-review.googlesource.com/3569
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
8 years agoIncremental decode: only use subset for subsetting
scroggo [Mon, 17 Oct 2016 21:32:41 +0000 (14:32 -0700)]
Incremental decode: only use subset for subsetting

In the initial patch, we modified the subset passed to incremental
decoding to account for sampling in Y. This allowed SkSampledCodec to
use a tighter bounds. But it also means that the implementation cannot
distinguish between lines that are excluded due to subsetting and those
excluded at the beginning and end due to sampling. This becomes
problematic in GIF (crrev.com/2045293002), which may need to fill,
requiring it to reconstruct the actual destination. In truth,
SkGifCodec does not need to support subsets, but cannot distinguish
between the tighter bounds and a true subset.

Fix this by passing the scaled subset to incremental decode, without
using the tighter bounds.

Make SkSampler::rowNeeded take the starting coordinate into account.

In SkPngCodec, compute the number of rows needed in the output, and use
that as a signal to stop.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2420843003

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

8 years agoRemove aux procs from SkGlyphCache.
Ben Wagner [Mon, 17 Oct 2016 20:55:53 +0000 (16:55 -0400)]
Remove aux procs from SkGlyphCache.

Doesn't appear that anyone is using these anymore. The last user was
removed with https://codereview.chromium.org/1985163002/ landed as
https://skia.googlesource.com/skia/+/c2878e23d405e7ae77f6110602ad75ce1f6b941c

Change-Id: I224354cd0d1ecbbb1100aa1e4b415d48637a51f3
Reviewed-on: https://skia-review.googlesource.com/3582
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
8 years agoAvoid integer overflow in SkIcoCodec and SkImageInfo
Matt Sarett [Mon, 17 Oct 2016 18:32:46 +0000 (14:32 -0400)]
Avoid integer overflow in SkIcoCodec and SkImageInfo

Original Commit Message:
"""
Avoid integer overflow in SkIcoCodec

Definitely good to avoid overflow here.

FWIW, this looks to be harmless for Android's current use.
They will just fail later on when trying to allocate the
bitmap.

BUG=skia:5857
"""

With the new test, ASAN also caught an integer overflow
bug in SkImageInfo.  Fix this as well.

CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN;master.client.skia.android:Test-Android-Clang-AndroidOne-CPU-MT6582-arm-Debug-GN_Android

BUG=skia:5857

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3568

Change-Id: I0d777a547850474ea6cea87e36efa05434e33635
Reviewed-on: https://skia-review.googlesource.com/3568
Reviewed-by: Kevin Lubick <kjlubick@google.com>
8 years agoRe-enable overdraw mode in debugger.
Ben Wagner [Mon, 17 Oct 2016 19:20:02 +0000 (15:20 -0400)]
Re-enable overdraw mode in debugger.

Debugger is the last user of the deprecated SkPaintFilterCanvas
constructor. Stop using it and remove the constructor.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3268

Change-Id: I3e9180d48abdf86cb2c05bd8d95acabcdaa70427
Reviewed-on: https://skia-review.googlesource.com/3268
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
8 years agoUpdate SKP version
update-skps [Mon, 17 Oct 2016 21:06:21 +0000 (14:06 -0700)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2430443002

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

8 years agoModify deferred texture image API's handling of gamma
Brian Osman [Mon, 17 Oct 2016 13:51:37 +0000 (09:51 -0400)]
Modify deferred texture image API's handling of gamma

This tries to match the behavior you would see if you rendered directly to
a canvas without going through this round-trip. Specifically, mips are
built in the same way that they would be according to the context's
internal logic. To make things clearer, the user passes in the color space
of the destination surface, not our (internal) enum.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3526

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

8 years agoskp_parser
halcanary [Mon, 17 Oct 2016 20:19:02 +0000 (13:19 -0700)]
skp_parser

compiles with GN.

NOTRY=true
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2281733003

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

8 years agomore skslc hardening
ethannicholas [Mon, 17 Oct 2016 18:24:37 +0000 (11:24 -0700)]
more skslc hardening

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2427693002

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

8 years agoApply correct sRGB->Linear4f conversion in SkModeColorFilter
Matt Sarett [Mon, 17 Oct 2016 17:52:49 +0000 (13:52 -0400)]
Apply correct sRGB->Linear4f conversion in SkModeColorFilter

This fixes a software rendering bug in Android.  Vector drawable
icons were being drawn "too light" because they were missing this
step.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3563

Change-Id: I9b9c0dc571244dab17ee125ecb7814d7f85181e2
Reviewed-on: https://skia-review.googlesource.com/3563
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
8 years agoSwitch Windows ANGLE bots to GN.
Mike Klein [Mon, 17 Oct 2016 17:07:56 +0000 (13:07 -0400)]
Switch Windows ANGLE bots to GN.

CQ_INCLUDE_TRYBOTS=master.client.skia.compile:Build-Win-MSVC-x86-Debug-ANGLE-Trybot;master.client.skia:Test-Win-MSVC-ShuttleC-GPU-GTX960-x86_64-Release-ANGLE-Trybot

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3539

Change-Id: I076c4c5972344b6688d648a8ea5e5618e87fd88d
Reviewed-on: https://skia-review.googlesource.com/3539
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
8 years agoIncrease MSAN timeout from 4 to 9 hours.
Ben Wagner [Mon, 17 Oct 2016 17:29:02 +0000 (13:29 -0400)]
Increase MSAN timeout from 4 to 9 hours.

Recent runs have been timing out.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3562

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